WebSocketStream: opened-Eigenschaft
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.
Die opened
schreibgeschützte Eigenschaft der WebSocketStream
-Schnittstelle gibt ein Promise
zurück, das mit einem Objekt erfüllt wird, sobald die Socket-Verbindung erfolgreich geöffnet wurde. Dieses Objekt enthält unter anderem eine ReadableStream
- und eine WritableStream
-Instanz, um Daten über die Verbindung zu empfangen und zu senden.
Wert
Ein Promise, das mit einem Objekt erfüllt wird, das die folgenden Eigenschaften enthält:
extensions
-
Ein String, der alle auf den
WebSocketStream
angewendeten Erweiterungen darstellt. Solche Erweiterungen sind derzeit nicht definiert, könnten aber in Zukunft existieren. Aktuell wird ein leerer String zurückgegeben. protocol
-
Ein String, der das Subprotokoll darstellt, das zum Öffnen der aktuellen WebSocket-Verbindung verwendet wird (aus den in der
protocols
-Option desWebSocketStream()
-Konstruktors angegebenen Optionen ausgewählt). Gibt einen leeren String zurück, wenn kein Subprotokoll verwendet wurde, um die Verbindung zu öffnen (d.h. 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);
}
}
Siehe Verwendung von WebSocketStream zum Erstellen eines Clients für ein vollständiges Beispiel mit ausführlicher Erklärung.
Spezifikationen
Derzeit kein Teil einer Spezifikation. Siehe https://github.com/whatwg/websockets/pull/48 für den Fortschritt der Standardisierung.
Browser-Kompatibilität
Siehe auch
- WebSocketStream: Integration von Streams mit der WebSocket-API, developer.chrome.com (2020)