JavaScript

WebSocket-Beispielprogramm

WebSocket-Beispielprogramm

Das WebSocket-Protokoll ermöglicht die bidirektionale Kommunikation zwischen einem Client und einem Server. Dieser Vorgang ist ähnlich wie bei Anrufen auf Ihrem Telefon: Zuerst bauen Sie eine Verbindung auf und dann können Sie beginnen, miteinander zu kommunizieren. Das WebSocket-Protokoll wird fast überall verwendet – von Multiplayer-Browsergames bis hin zu Chat-Anwendungen.

In diesem Artikel erfahren Sie, wie Sie ein WebSocket-Protokoll erstellen und es verwenden, um mit mehreren Benutzern zu kommunizieren.

Voraussetzungen

Bevor Sie mit dem Erstellen und Verwenden eines WebSocket-Protokolls fortfahren, müssen Sie zunächst einige Dinge installieren, die für diesen Vorgang erforderlich sind. Das erste, was Sie installieren müssen, ist Node.js, eine serverseitige Plattform, die die Programmiersprache JavaScript in Maschinencode umwandelt, mit dem Sie JavaScript direkt auf Ihrem Computer ausführen können. So installieren Sie Node.js können Windows-Benutzer einfach zum offiziellen Node gehen.js-Website und klicken Sie auf die grüne LTS-Schaltfläche in der Mitte des Bildschirms.

Für Linux- und macOS-Benutzer klicken Sie auf das Downloads Abschnitt in der Unterüberschrift der Website.

Nach dem Öffnen der Downloads Abschnitt sehen Sie Installationsdateien für alle drei großen Plattformen. Wählen Sie ein Paket aus, das von Ihrem System unterstützt wird.

Führen Sie das Installationsprogramm aus, das mit den heruntergeladenen Dateien geliefert wird, und Node.js wird auf Ihrem Computer installiert. Um zu überprüfen, ob das Programm installiert wurde, öffnen Sie das Terminal und geben Sie folgenden Befehl ein:

$ Knoten -v

Nach der Installation von Node.js haben Sie nun Zugriff auf verschiedene JavaScript-Module, die Ihre Arbeit auf Dauer effizienter machen. Öffnen Sie das Verzeichnis, in dem Sie Ihre Client- und Serverarchitektur erstellen möchten, öffnen Sie dann das Terminal in diesem Verzeichnis und führen Sie den folgenden Befehl aus:

$ npm init -y

Dieser Befehl wird verwendet, um das Paket zu erstellen.json-Datei, mit der Sie verschiedene Node einrichten und installieren können.js-Pakete. Installieren Sie das WebSocket-Protokollpaket, indem Sie den folgenden Befehl im Terminal ausführen:

$ npm install ws

Erstellen Sie drei Dateien, genannt Index.html, Kunde.js und server.js. Wie aus den Namen hervorgeht, sind diese JavaScript-Dateien die Client- und Serverarchitektur unseres WebSocket-Protokolls. Jetzt können wir endlich damit beginnen, den Code unserer Client- und Serveranwendungen zu schreiben.

Erstellen eines WebSocket-Servers

Um einen WebSocket-Server zu erstellen, schreiben wir zunächst den Code für den Server. Öffne das Server.js Datei, die Sie im vorherigen Abschnitt in Ihrem Texteditor oder IDE erstellt haben, und geben Sie die folgenden Zeilen in die Datei ein.

const WebSocket = require('ws');
const ws = neuer WebSocket.Server(Port: 8080);
Konsole.log("Server gestartet");
ws.on('Verbindung', (wss) =>
Konsole.log("Ein neuer Client verbunden")
wss.send('Willkommen beim Server!');
wss.on('Nachricht', (Nachricht) =>
Konsole.log('Server empfangen: $message');
wss.send('Ich habe deine Nachricht erhalten: ' + Nachricht);
);
);

Jetzt werden wir genauer erklären, was jede Zeile macht.

Code-Erklärung

Wie bereits erwähnt, gibt es einige integrierte Module in Node modules.js, die Ihnen die Arbeit erheblich erleichtern. Um diese Module zu importieren, verwenden wir die benötigen Stichwort.

const WebSocket = require('ws');
const ws = neuer WebSocket.Server(Port: 8080);
Konsole.log("Server gestartet");

Die erste Zeile wird verwendet, um den Node zu importieren.js WebSocket-Modul. Mit diesem Modul erstellen wir in der nächsten Zeile unseren WebSocket-Server, der auf Port 8080 lauscht. Das Konsole.Log() line ist nur da, um uns mitzuteilen, dass der Server gestartet wurde. Sie sehen dies in Ihrem Terminal, wenn Sie den folgenden Befehl im Terminal ausführen:

$ Knotenserver

In der nächsten Zeile stellen wir eine Verbindung zwischen Server und Client her.

ws.on('Verbindung', (wss) =>
Konsole.log("Ein neuer Client verbunden")
);

Nachdem eine Verbindung hergestellt wurde, wird die wss.send()-Zeile sendet eine Nachricht an den Client. In diesem Fall lautet die Nachricht „Willkommen beim Server“.”

wss.send('Willkommen beim Server!');

Endlich die wss.on ('message') ist für den Server, um die Nachricht vom Client zu empfangen. Zur Bestätigung schickt der Server diese Nachricht in der letzten Zeile an den Client zurück.

wss.on('Nachricht', (Nachricht) =>
Konsole.log('Server empfangen: $message');
wss.send('Ihre Nachricht erhalten: ' + Nachricht);
);

Erstellen eines WebSocket-Clients

Für die Client-Seite benötigen wir sowohl den Index.html-Datei und der Client.js-Datei. Natürlich können Sie den Inhalt einfach aus dem Client hinzufügen.js-Datei in Ihren Index.html-Datei, aber ich ziehe es vor, sie getrennt zu halten. Schauen wir uns zuerst den Kunden an.js-Code. Öffnen Sie die Datei und geben Sie die folgenden Zeilen in die Datei ein:

const socket = new WebSocket('ws://localhost:8080');
Steckdose.addEventListener('open', () =>
Konsole.log('Mit dem Server verbunden!');
);
Steckdose.addEventListener('Nachricht', (Nachricht) =>
Konsole.log('Client erhalten: $msg.Daten');
);
const sendMsg = () =>
Steckdose.send('Wie geht's amigo!');

Code-Erklärung

Wie beim Server.js erstellen wir ein neues WebSocket, das auf Port 8080 lauscht, das in der Datei zu sehen ist localhost:8080 Abschnitt des Codes.

const socket = new WebSocket('ws://localhost:8080');

In der nächsten Zeile, addEventListener lässt Ihren Kunden auf alle Ereignisse hören, die gerade passieren. In diesem Fall würde es den Server erstellen und starten. Sobald die Verbindung hergestellt ist, gibt der Client eine Nachricht an das Terminal aus.

Steckdose.addEventListener('open', () =>
Konsole.log('Mit dem Server verbunden!');
);

Der Client hört sich wieder alle Ereignisse an, die gerade passieren. Wenn der Server eine Nachricht sendet, empfängt der Client diese und zeigt die Nachricht dann im Terminal an.

Steckdose.addEventListener('Nachricht', (Nachricht) =>
Konsole.log('Client erhalten: $msg.Daten');
);

Die letzten paar Zeilen sind einfach eine Funktion, bei der der Client eine Nachricht an den Server sendet. Wir werden dies mit einer Schaltfläche in unserer HTML-Datei verbinden, um besser zu verstehen, wie dies funktioniert.

const sendMsg = () =>
Steckdose.send('Wie geht's amigo!');

Vorbereiten einer HTML-Datei

Öffnen Sie schließlich den Index.html-Datei und fügen Sie eine Referenz zu Ihrem Client hinzu.js-Datei darin. In meinem Fall füge ich einfach die folgenden Codezeilen hinzu:






Klient





Wie Sie in den Zeilen unten sehen können, src (innerhalb des script-Tags) bezieht sich auf die Client-Javascript-Datei. Die sendMsg-Funktion, die im Client erstellt wurde.js-Datei, wurde auch mit der onClick-Funktion des Buttons verbunden.


Alles zusammenfügen

Sie können jetzt mit dem Testen Ihrer Client- und Serverarchitektur beginnen. Öffnen Sie zunächst das Terminal und führen Sie den folgenden Befehl aus, um Ihren Server zu starten:

$ Knotenserver

Öffnen Sie nach dem Starten Ihres Servers das Verzeichnis, in dem Ihr Index.html-Datei vorhanden ist, und doppelklicken Sie darauf, um sie in Ihrem Browser zu öffnen. Im Terminal wird die folgende Meldung angezeigt, die besagt, dass sich ein Client verbunden hat:

Sie können auch die vom Server an den Client gesendeten Nachrichten überprüfen, indem Sie die rechte Maustaste drücken und dann die Prüfen Fenster. Klicken Sie in diesem Fenster auf das Konsole Abschnitt, und Sie können die vom Server gesendeten Nachrichten sehen.

Sobald Sie auf die Schaltfläche klicken, können sowohl der Server als auch der Client Nachrichten senden und empfangen.

Server:

Klient:

Voilà, Ihre WebSocket-Verbindung wurde hergestellt!

Fazit

Das WebSocket-Protokoll ist eine hervorragende Möglichkeit, die Kommunikation zwischen einem Client und einem Server herzustellen. Dieses Protokoll wird in verschiedenen Bereichen verwendet, darunter Multiplayer-Browserspiele, Chat-Systeme verschiedener Social-Media-Plattformen und sogar Kollaborationsverfahren zwischen Programmierern.

OpenTTD-Tutorial
OpenTTD ist eines der beliebtesten Wirtschaftssimulationsspiele auf dem Markt. In diesem Spiel musst du ein wunderbares Transportunternehmen aufbauen....
SuperTuxKart für Linux
SuperTuxKart ist ein großartiger Titel, der entwickelt wurde, um Ihnen das Mario Kart-Erlebnis kostenlos auf Ihrem Linux-System zu bieten. Es ist ziem...
Battle for Wesnoth-Tutorial
The Battle for Wesnoth ist eines der beliebtesten Open-Source-Strategiespiele, die Sie derzeit spielen können. Dieses Spiel befindet sich nicht nur se...