WebSocket: WebSocket() Konstruktor
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Hinweis: Dieses Feature ist verfügbar in Web Workers.
Der WebSocket()
Konstruktor gibt ein neues WebSocket
-Objekt zurück und versucht sofort, eine Verbindung zur angegebenen WebSocket-URL herzustellen.
Syntax
new WebSocket(url)
new WebSocket(url, protocols)
Parameter
url
-
Die URL des Ziel-WebSocket-Servers, zu dem eine Verbindung hergestellt werden soll. Die URL muss eines der folgenden Schemata verwenden:
ws
,wss
,http
oderhttps
und darf kein URL-Fragment enthalten. Wenn eine relative URL angegeben wird, bezieht sie sich auf die Basis-URL des aufrufenden Skripts. protocols
Optional-
Ein einzelner String oder ein Array von Strings, das die vom Client gewünschte(n) Subprotokoll(e) in der Reihenfolge der Präferenz darstellt. Wenn es weggelassen wird, wird standardmäßig ein leeres Array verwendet, d.h.
[]
.Ein einzelner Server kann mehrere WebSocket-Subprotokolle implementieren und unterschiedliche Interaktionstypen je nach angegebenem Wert handhaben. Beachten Sie jedoch, dass pro Verbindung nur ein Subprotokoll ausgewählt werden kann.
Die zulässigen Werte sind diejenigen, die im
Sec-WebSocket-Protocol
HTTP-Header angegeben werden können. Diese sind Werte, die aus dem IANA WebSocket Subprotocol Name Registry ausgewählt werden, wiesoap
,wamp
,ship
und so weiter, oder können ein benutzerdefinierter Name sein, der von Client und Server gemeinsam verstanden wird.Hinweis: Die Verbindung wird nicht hergestellt, bis das Subprotokoll mit dem Server ausgehandelt ist. Das ausgewählte Protokoll kann dann aus
WebSocket.protocol
gelesen werden: Es wird der leere String sein, wenn keine Verbindung hergestellt werden kann.
Ausnahmen
SyntaxError
DOMException
-
Ausgelöst, wenn:
- das Parsen von
url
fehlschlägt url
ein anderes Schema alsws
,wss
,http
oderhttps
haturl
ein Fragment hat- irgendein Wert in
protocols
mehr als einmal auftritt oder anderweitig die Anforderungen an Elemente, die den Wert vonSec-WebSocket-Protocol
-Felder bilden, gemäß der WebSocket-Protokollspezifikation nicht entspricht
- das Parsen von
Beispiele
Die untenstehenden Beispiele zeigen, wie man sich mit einem WebSocket
verbinden könnte.
Der folgende Code zeigt, wie wir uns mit einem Socket unter Verwendung einer URL mit dem Schema wss
verbinden können:
const wssWebSocket = new WebSocket('wss://websocket.example.org');
console.log(wssWebSocket.url); // 'wss://websocket.example.org'
... // Do something with socket
wssWebSocket.close();
Der Code zum Herstellen einer Verbindung mit einer HTTPS-URL ist nahezu identisch.
Im Hintergrund wird dies vom Browser in eine "WSS"-Verbindung umgewandelt, sodass die WebSocket.url
das Schema "wss:" haben wird.
const httpsWebSocket = new WebSocket('https://websocket.example.org');
console.log(httpsWebSocket.url); // 'wss://websocket.example.org'
... // Do something with socket
httpsWebSocket.close();
Wir können auch relative URLs auflösen. Die absolute URL hängt von der Basis-URL des Kontextes ab, in dem sie aufgerufen wird.
relativeWebSocket = new WebSocket('/local/url');
... // Do something with socket
relativeWebSocket.close();
Spezifikationen
Specification |
---|
WebSockets Standard # ref-for-dom-websocket-websocket① |
Browser-Kompatibilität
BCD tables only load in the browser
Siehe auch
- RFC 6455 (die WebSocket-Protokollspezifikation)