WebTransport: incomingBidirectionalStreams-Eigenschaft

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.

Hinweis: Diese Funktion ist in Web Workers verfügbar.

Die incomingBidirectionalStreams-Eigenschaft des WebTransport-Interfaces stellt einen oder mehrere vom Server geöffnete bidirektionale Streams dar. Sie gibt einen ReadableStream von WebTransportBidirectionalStream-Objekten zurück. Jeder dieser Streams kann verwendet werden, um zuverlässig Daten vom Server zu lesen und Daten an diesen zurückzuschreiben.

"Zuverlässig" bedeutet, dass Übertragung und Reihenfolge der Daten garantiert sind. Dies bietet eine langsamere Lieferung (wenn auch schneller als mit WebSockets) als Datagramme, ist jedoch in Situationen erforderlich, in denen Zuverlässigkeit und Reihenfolge wichtig sind, wie bei Chat-Anwendungen.

Wert

Beispiele

Eine anfängliche Funktion wird verwendet, um die WebTransportBidirectionalStream-Objekte aus dem ReadableStream zu lesen. Für jedes wird die WebTransportBidirectionalStream.readable und WebTransportBidirectionalStream.writable-Werte an andere Funktionen übergeben, um von diesen Streams zu lesen bzw. in diese zu schreiben.

js
async function receiveBidirectional() {
  const bds = transport.incomingBidirectionalStreams;
  const reader = bds.getReader();
  while (true) {
    const { done, value } = await reader.read();
    if (done) {
      break;
    }
    // value is an instance of WebTransportBidirectionalStream
    await readData(value.readable);
    await writeData(value.writable);
  }
}

async function readData(readable) {
  const reader = readable.getReader();
  while (true) {
    const { value, done } = await reader.read();
    if (done) {
      break;
    }
    // value is a Uint8Array.
    console.log(value);
  }
}

async function writeData(writable) {
  const writer = writable.getWriter();
  const data1 = new Uint8Array([65, 66, 67]);
  const data2 = new Uint8Array([68, 69, 70]);
  writer.write(data1);
  writer.write(data2);
}

Spezifikationen

Specification
WebTransport
# dom-webtransport-incomingbidirectionalstreams

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
incomingBidirectionalStreams

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support
User must explicitly enable this feature.

Siehe auch