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 des WebSocketStream()-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 Sie ReadableStream.getReader() auf, um eine ReadableStreamDefaultReader-Instanz zu erhalten, die verwendet werden kann, um eingehende WebSocket-Daten zu lesen.

writable

Eine WritableStream-Instanz. Rufen Sie WritableStream.getWriter() auf, um eine WritableStreamDefaultWriter-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

js
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