Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

WebSocketStream

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.

Das WebSocketStream-Interface der WebSockets-API ist eine auf Promises basierende API zum Verbinden mit einem WebSocket-Server. Sie verwendet Streams, um Daten über die Verbindung zu senden und zu empfangen, und kann daher automatisch den Stream-Rückdruck nutzen, um die Lese- oder Schreibgeschwindigkeit zu regulieren und Engpässe in der Anwendung zu vermeiden.

Konstruktor

WebSocketStream()

Erstellt eine neue WebSocketStream-Objektinstanz.

Instanz-Eigenschaften

url Schreibgeschützt

Gibt die URL des WebSocket-Servers zurück, mit dem die WebSocketStream-Instanz erstellt wurde.

closed Schreibgeschützt

Gibt ein Promise zurück, das erfüllt wird, wenn die Socket-Verbindung geschlossen wird. Das Objekt enthält den Schließcode und den Grund, wie vom Server gesendet.

opened Schreibgeschützt

Gibt ein Promise zurück, das 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.

Instanz-Methoden

close()

Schließt die WebSocket-Verbindung.

Beispiele

js
const output = document.querySelector("#output");

function writeToScreen(message) {
  const pElem = document.createElement("p");
  pElem.textContent = message;
  output.appendChild(pElem);
}

if (!("WebSocketStream" in self)) {
  writeToScreen("Your browser does not support WebSocketStream");
} else {
  const wsURL = "ws://127.0.0.1/";
  const wss = new WebSocketStream(wsURL);

  console.log(wss.url);

  async function start() {
    const { readable, writable, extensions, protocol } = await wss.opened;
    writeToScreen("CONNECTED");
    closeBtn.disabled = false;
    const reader = readable.getReader();
    const writer = writable.getWriter();

    writer.write("ping");
    writeToScreen("SENT: ping");

    while (true) {
      const { value, done } = await reader.read();
      writeToScreen(`RECEIVED: ${value}`);
      if (done) {
        break;
      }

      setTimeout(() => {
        writer.write("ping");
        writeToScreen("SENT: ping");
      }, 5000);
    }
  }

  start();
}

Siehe Verwendung von WebSocketStream zum Schreiben eines Clients für ein vollständiges Beispiel mit vollständiger Erklärung.

Spezifikationen

Derzeit nicht Teil einer Spezifikation. Siehe https://github.com/whatwg/websockets/pull/48 für den Standardisierungsfortschritt.

Browser-Kompatibilität

Siehe auch