Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.
Dieses Beispiel zeigt Ihnen, wie Sie einen WebSocket-API-Server mit Oracle Java erstellen.
Obwohl andere serverseitige Sprachen verwendet werden können, um einen WebSocket-Server zu erstellen, verwendet dieses Beispiel Oracle Java, um den Beispielcode zu vereinfachen.
Dieser Server entspricht RFC 6455 und behandelt daher nur Verbindungen von Chrome ab Version 16, Firefox 11, IE 10 und höher.
WebSockets kommunizieren über eine TCP (Transmission Control Protocol)-Verbindung. Die ServerSocket-Klasse von Java befindet sich im java.net-Paket.
Der ServerSocket-Konstruktor akzeptiert einen einzelnen Parameter port vom Typ int.
Wenn Sie die ServerSocket-Klasse instanziieren, wird sie an die Portnummer gebunden, die Sie durch das port-Argument angegeben haben.
Hier ist eine Implementierung, aufgeteilt in Teile:
Gibt einen Eingabestrom für diesen Socket zurück.
java.net.Socket.getOutputStream()Gibt einen Ausgabestrom für diesen Socket zurück.
Schreibt len Bytes aus dem angegebenen Bytearray, beginnend bei Offset off, in diesen Ausgabestrom.
Liest bis zu len Bytes Daten aus dem Eingabestrom in ein Bytearray.
Lassen Sie uns unser Beispiel erweitern.
Wenn ein Client eine Verbindung zu einem Server herstellt, sendet er eine GET-Anfrage, um die Verbindung von einer einfachen HTTP-Anfrage auf einen WebSocket aufzurüsten. Dies wird als Handshaking bezeichnet.
Das Erstellen der Antwort ist einfacher, als zu verstehen, warum Sie es auf diese Weise tun müssen.
Sie müssen:
Nach einem erfolgreichen Handshake kann der Client Nachrichten an den Server senden, aber jetzt sind diese kodiert.
Wenn wir "abcdef" senden, erhalten wir diese Bytes:
129 134 167 225 225 210 198 131 130 182 194 135129:
| 1 | 0 | 0 | 0 | 0x1=0001 |
FIN: Sie können Ihre Nachricht in Frames senden, aber jetzt halten Sie es einfach. Opcode 0x1 bedeutet, dass dies ein Text ist. Vollständige Liste der Opcodes
134:
Wenn das zweite Byte minus 128 zwischen 0 und 125 liegt, ist dies die Länge der Nachricht. Wenn es 126 ist, sind die folgenden 2 Bytes (16-Bit-Unsigned-Integer), wenn 127, die folgenden 8 Bytes (64-Bit-Unsigned-Integer, das höchstwertige Bit MUSS 0 sein) die Länge.
Hinweis: Es kann 128 annehmen, da das erste Bit immer 1 ist.
167, 225, 225 und 210 sind die Bytes des Schlüssels zum Dekodieren. Sie ändern sich jedes Mal.
Die verbleibenden kodierten Bytes sind die Nachricht.
Dekodiertes Byte = Kodiertes Byte XOR (Position des kodierten Bytes BITWEISE UND 0x3)tes Byte des Schlüssels
Beispiel in Java:
Der Bauplan für ein besseres Internet.
Besuche die gemeinnützige Muttergesellschaft der Mozilla Corporation, die Mozilla Foundation.
Teile dieses Inhalts sind ©1998–2026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfügbar unter einer Creative-Commons-Lizenz.