← 返回首页
WebSocketStream: WebSocketStream() Konstruktor - Web-APIs | MDN

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

View in English Always switch to English

WebSocketStream: WebSocketStream() Konstruktor

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.

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

Nicht standardisiert: Diese Funktion ist nicht standardisiert. Wir raten davon ab, nicht-standardisierte Funktionen auf produktiven Webseiten zu verwenden, da sie nur von bestimmten Browsern unterstützt werden und sich in Zukunft ändern oder entfernt werden können. Unter Umständen kann sie jedoch eine geeignete Option sein, wenn es keine standardisierte Alternative gibt.

Der WebSocketStream() Konstruktor erstellt eine neue Instanz des WebSocketStream-Objekts.

In diesem Artikel

Syntax

js
new WebSocketStream(url) new WebSocketStream(url, options)

Parameter

url

Ein String, der die URL des WebSocket-Servers darstellt, zu dem Sie mit dieser WebSocketStream-Instanz eine Verbindung herstellen möchten. Erlaubte URL-Schemata sind "ws", "wss", "http" und "https".

options Optional

Ein Objekt, das die folgenden Eigenschaften enthalten kann:

protocols Optional

Ein einzelner String oder ein Array von Strings, das die Subprotokolle darstellt, die der Client verwenden möchte, zum Beispiel "amqp" oder "mqtt". Subprotokolle können aus dem IANA WebSocket Subprotocol Name Registry ausgewählt werden oder benutzerdefinierte Namen sein, die sowohl vom Client als auch vom Server verstanden werden. Ein einziger Server kann mehrere WebSocket-Subprotokolle implementieren und unterschiedliche Interaktionen je nach dem angegebenen Wert handhaben. Wenn es weggelassen wird, wird standardmäßig ein leeres Array verwendet. Wenn protocols angegeben ist, wird die Verbindung nur hergestellt, wenn der Server meldet, dass er eines dieser Subprotokolle ausgewählt hat.

signal Optional

Ein AbortSignal, das verwendet werden kann, um die Verbindung abzubrechen, bevor der Handshake abgeschlossen ist (das heißt, bevor das opened-Versprechen erfüllt wird). Dies ist hauptsächlich dazu gedacht, Verbindungstimeouts zu implementieren. Daher hat es nach der Herstellung der Verbindung keine Wirkung mehr.

Ausnahmen

SyntaxError DOMException

Wird ausgelöst, wenn das URL-Schema nicht eines von "ws", "wss", "http" oder "https" ist.

Beispiele

Erstellen eines WebSocketStream

Das einfachste Beispiel nimmt die URL eines WebSocket-Servers als Argument:

js
const wss = new WebSocketStream("wss://example.com/wss");

Erstellen eines WebSocketStream mit einem Verbindungstimeout

Das folgende Beispiel verwendet die signal-Option, um ein Timeout zu implementieren, wenn die Verbindung nicht innerhalb von 5 Sekunden hergestellt wird:

js
const queueWSS = new WebSocketStream("wss://example.com/queue", { signal: AbortSignal.timeout(5000), });

Beachten Sie, dass, wenn Sie sich mit localhost verbinden, dies wahrscheinlich erfolgreich ist oder fehlschlägt, bevor der Verbindungsversuch abläuft.

Sobald die Verbindung hergestellt ist, hat signal keine Wirkung: Um eine Verbindung zu schließen, die bereits hergestellt wurde, rufen Sie die Methode WebSocketStream.close() auf. Das Schließen des zugrunde liegenden WritableStream oder WritableStreamDefaultWriter schließt ebenfalls den Socket.

Siehe Verwendung von WebSocketStream zum Schreiben eines Clients für ein vollständiges Beispiel mit ausführlicher Erklärung.

Spezifikationen

Derzeit nicht Teil einer Spezifikation. Siehe https://github.com/whatwg/websockets/pull/48 für Fortschritte zur Standardisierung.

WebSocketStream API Design.

Browser-Kompatibilität

JavaScript aktivieren, um diese Browser-Kompatibilitätstabelle anzuzeigen.

Siehe auch