WebSocketStream: Eigenschaft opened
Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig, bevor Sie diese produktiv verwenden.
Hinweis: Dieses Feature ist verfügbar in Web Workers.
Die opened
schreibgeschützte Eigenschaft der WebSocketStream
-Schnittstelle gibt ein Promise
zurück, das erfüllt wird, sobald die Socket-Verbindung erfolgreich geöffnet wurde. Dieses Objekt enthält unter anderem eine Instanz von ReadableStream
und WritableStream
zum Empfangen und Senden von Daten über die Verbindung.
Wert
Ein Promise
, das mit einem Objekt erfüllt wird, welches die folgenden Eigenschaften enthält:
extensions
-
Ein Zeichenfolgenwert, der Erweiterungen darstellt, die auf den
WebSocketStream
angewendet wurden. Solche Erweiterungen sind derzeit nicht definiert, könnten aber in Zukunft existieren. Aktuell wird ein leerer String zurückgegeben. protocol
-
Ein Zeichenfolgenwert, der das Subprotokoll darstellt, das verwendet wurde, um die aktuelle WebSocket-Verbindung zu öffnen (aus den im
protocols
-Parameter desWebSocketStream()
-Konstruktors festgelegten Optionen ausgewählt). Gibt einen leeren String zurück, wenn kein Subprotokoll verwendet wurde, um die Verbindung zu öffnen (d. h., wenn keine Subprotokoll-Optionen im Konstruktoraufruf enthalten waren). readable
-
Eine
ReadableStream
-Instanz. Rufen SieReadableStream.getReader()
auf, um eineReadableStreamDefaultReader
-Instanz zu erhalten, die verwendet werden kann, um eingehende WebSocket-Daten zu lesen. writable
-
Eine
WritableStream
-Instanz. Rufen SieWritableStream.getWriter()
auf, um eineWritableStreamDefaultWriter
-Instanz zu erhalten, die verwendet werden kann, um Daten an die WebSocket-Verbindung zu schreiben.
Das Promise
wird abgelehnt, wenn die WebSocket-Verbindung fehlschlägt.
Beispiele
const wsURL = "wss://127.0.0.1/";
const wss = new WebSocketStream(wsURL);
async function start() {
const { readable, writable, extensions, protocol } = await wss.opened;
const reader = readable.getReader();
const writer = writable.getWriter();
writer.write("ping");
while (true) {
const { value, done } = await reader.read();
if (done) {
break;
}
setTimeout(() => {
writer.write("ping");
}, 5000);
}
}
Für ein vollständiges Beispiel mit ausführlicher Erklärung siehe Using WebSocketStream to write a client.
Spezifikationen
Derzeit nicht Teil einer Spezifikation. Siehe https://github.com/whatwg/websockets/pull/48 für den Stand der Standardisierung.
Browser-Kompatibilität
BCD tables only load in the browser
Siehe auch
- WebSocketStream: Integrating streams with the WebSocket API, developer.chrome.com (2020)