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.
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.
Die schreibgeschützte opened-Eigenschaft der WebSocketStream-Schnittstelle gibt ein Promise zurück, das mit einem Objekt erfüllt wird, sobald die Socket-Verbindung erfolgreich geöffnet ist. Unter anderem enthält dieses Objekt 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, das die folgenden Eigenschaften enthält:
extensions-
Ein String, der alle Erweiterungen repräsentiert, die auf den
WebSocketStreamangewendet werden. Solche Erweiterungen sind derzeit nicht definiert, könnten aber in Zukunft hinzugefügt werden. Derzeit wird ein leerer String zurückgegeben. protocol-
Ein String, der das Subprotokoll repräsentiert, das zur Öffnung der aktuellen WebSocket-Verbindung verwendet wird (ausgewählt aus den Optionen, die in der
protocols-Option desWebSocketStream()-Konstruktors angegeben sind). Gibt einen leeren String zurück, wenn kein Subprotokoll zur Öffnung der Verbindung verwendet wurde (d.h. wenn keine Subprotokoll-Optionen im Konstruktoraufruf enthalten waren). readable-
Eine Instanz von
ReadableStream. Rufen SieReadableStream.getReader()auf, um eine Instanz vonReadableStreamDefaultReaderzu erhalten, die verwendet werden kann, um eingehende WebSocket-Daten zu lesen. writable-
Eine Instanz von
WritableStream. Rufen SieWritableStream.getWriter()auf, um eine Instanz vonWritableStreamDefaultWriterzu 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 Using WebSocketStream to write a client 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 den Fortschritt der Standardisierung.
Browser-Kompatibilität
Siehe auch
- WebSocketStream: integration von Streams in die WebSocket-API, developer.chrome.com (2020)