Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

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 ⁨Juli 2015⁩.

* Some parts of this feature may have varying levels of support.

Hinweis: Diese Funktion ist in Web Workers verfügbar.

Der WebSocket() Konstruktor gibt ein neues WebSocket Objekt zurück und versucht sofort, eine Verbindung zur angegebenen WebSocket-URL herzustellen.

Syntax

js
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 Schemas verwenden: ws, wss, http oder https 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 Sub-Protokolle darstellt, die der Client in der Reihenfolge der Präferenz verwenden möchte. Wenn es weggelassen wird, wird standardmäßig ein leeres Array verwendet, d.h. [].

Ein einzelner Server kann mehrere WebSocket-Subprotokolle implementieren und unterschiedliche Arten von Interaktionen je nach dem angegebenen Wert behandeln. Beachten Sie jedoch, dass pro Verbindung nur ein Subprotokoll ausgewählt werden kann.

Die erlaubten Werte sind diejenigen, die im Sec-WebSocket-Protocol HTTP-Header angegeben werden können. Diese sind aus dem IANA WebSocket Subprotocol Name Registry ausgewählt, wie z.B. soap, wamp, ship und so weiter, oder ein benutzerdefinierter Name, der zwischen Client und Server gemeinsam verstanden wird.

Hinweis: Die Verbindung wird erst hergestellt, wenn das Subprotokoll mit dem Server ausgehandelt ist. Das ausgewählte Protokoll kann dann von WebSocket.protocol gelesen werden: Es wird der leere String sein, wenn keine Verbindung hergestellt werden kann.

Ausnahmen

SyntaxError DOMException

Wird ausgelöst, wenn:

  • das Parsen von url fehlschlägt
  • url ein Schema hat, das nicht ws, wss, http oder https ist
  • url ein Fragment enthält
  • einer der Werte in protocols mehr als einmal vorkommt oder anderweitig nicht die Anforderungen für Elemente erfüllt, die den Wert der Felder von Sec-WebSocket-Protocol gemäß der WebSocket-Protokoll-Spezifikation bestimmen

Beispiele

Die unten stehenden Beispiele zeigen, wie Sie eine Verbindung zu einem WebSocket herstellen könnten.

Der folgende Code zeigt, wie wir eine Verbindung zu einem Socket unter Verwendung einer URL mit dem wss Schema herstellen können:

js
const wssWebSocket = new WebSocket("wss://websocket.example.org");
console.log(wssWebSocket.url); // 'wss://websocket.example.org'

// Do something with socket

wssWebSocket.close();

Der Code für die Verbindung zu einer HTTPS-URL ist fast derselbe. Im Hintergrund löst der Browser dies in eine "WSS"-Verbindung auf, sodass das WebSocket.url das Schema "wss:" haben wird.

js
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 Kontexts ab, in dem sie aufgerufen wird.

js
relativeWebSocket = new WebSocket("/local/url");

// Do something with socket

relativeWebSocket.close();

Spezifikationen

Specification
WebSockets
# ref-for-dom-websocket-websocket①

Browser-Kompatibilität

Siehe auch

  • RFC 6455 (die WebSocket-Protokoll-Spezifikation)