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.
Der WebSocketStream() Konstruktor erstellt eine neue Instanz des WebSocketStream Objekts.
Syntax
new WebSocketStream(url)
new WebSocketStream(url, options)
Parameter
url-
Ein String, der die URL des WebSocket-Servers darstellt, mit dem Sie sich über diese
WebSocketStream-Instanz verbinden möchten. Erlaubte URL-Schemata sind"ws","wss","http"und"https". optionsOptional-
Ein Objekt, das die folgenden Eigenschaften enthalten kann:
protocolsOptional-
Ein einzelner String oder ein Array von Strings, die das bzw. die Subprotokoll(e) repräsentieren, das bzw. die der Client verwenden möchte, z.B.
"amqp"oder"mqtt". Subprotokolle können aus dem IANA WebSocket Subprotocol Name Registry ausgewählt oder benutzerdefinierte Namen sein, die vom Client und dem Server gemeinsam verstanden werden. Ein einzelner Server kann mehrere WebSocket-Subprotokolle implementieren und verschiedene Arten von Interaktionen je nach angegebenem Wert behandeln. Wenn es weggelassen wird, wird standardmäßig ein leeres Array verwendet. Wennprotocolsenthalten ist, wird die Verbindung nur hergestellt, wenn der Server meldet, dass er eines dieser Subprotokolle ausgewählt hat. signalOptional-
Ein
AbortSignal, das verwendet werden kann, um die Verbindung abzubrechen, bevor der Handshake abgeschlossen ist (das heißt, bevor dasopened-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
SyntaxErrorDOMException-
Wird ausgelöst, wenn das URL-Schema nicht eines von
"ws","wss","http"oder"https"ist.
Beispiele
Erstellen eines WebSocketStream
Das einfachste Beispiel verwendet die URL eines WebSocket-Servers als Argument:
const wss = new WebSocketStream("wss://example.com/wss");
Erstellen eines WebSocketStream mit Verbindungstimeout
Das folgende Beispiel verwendet die signal-Option, um ein Timeout zu implementieren, falls die Verbindung nicht innerhalb von 5 Sekunden hergestellt wird:
const queueWSS = new WebSocketStream("wss://example.com/queue", {
signal: AbortSignal.timeout(5000),
});
Beachten Sie, dass bei einer Verbindung zu localhost die Verbindung wahrscheinlich sofort erfolgreich ist oder fehlschlägt, bevor der Verbindungsversuch abläuft.
Sobald die Verbindung hergestellt ist, hat signal keine Wirkung mehr: Um eine bereits hergestellte Verbindung zu schließen, rufen Sie die Methode WebSocketStream.close() auf. Das Schließen des darunterliegenden WritableStream oder WritableStreamDefaultWriter schließt ebenfalls den Socket.
Siehe Verwendung von WebSocketStream zum Schreiben eines Clients für ein vollständiges Beispiel mit vollständiger Erklärung.
Spezifikationen
Gegenwärtig nicht Teil einer Spezifikation. Siehe https://github.com/whatwg/websockets/pull/48 für den Stand der Standardisierung.
Browser-Kompatibilität
Siehe auch
- WebSocketStream: Integration von Streams mit der WebSocket-API, developer.chrome.com (2020)