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

View in English Always switch to English

WebTransportDatagramDuplexStream

Baseline 2026
Neu verfügbar
*

Seit März 2026 funktioniert diese Funktion auf aktuellen Geräten und in aktuellen Browserversionen. Auf älteren Geräten oder in älteren Browsern funktioniert sie möglicherweise nicht.

* Einige Teile dieser Funktion werden möglicherweise unterschiedlich gut unterstützt.

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.

Das WebTransportDatagramDuplexStream-Interface der WebTransport API stellt einen Duplex-Stream dar, der für den unzuverlässigen Transport von Datenpaketen zwischen Client und Server verwendet werden kann. Es bietet Zugriff auf einen ReadableStream zum Lesen eingehender Datenpakete, einen WritableStream zum Schreiben ausgehender Datenpakete sowie verschiedene Einstellungen und Statistiken im Zusammenhang mit dem Stream.

Dies wird über die WebTransport.datagrams-Eigenschaft abgerufen.

"Unzuverlässig" bedeutet, dass die Übertragung von Daten nicht garantiert ist, noch die Ankunft in einer bestimmten Reihenfolge. Dies ist in manchen Situationen in Ordnung und ermöglicht eine sehr schnelle Lieferung. Zum Beispiel könnten regelmäßige Aktualisierungen des Spielstatus übertragen werden, wobei jede Nachricht die letzte übertrifft, die ankommt, und die Reihenfolge nicht wichtig ist.

Instanz-Eigenschaften

incomingHighWaterMark

Ruft die maximale Größe in Chunks ab oder legt sie fest, die die interne Warteschlange des eingehenden ReadableStream erreichen kann, bevor sie als voll betrachtet wird. Weitere Informationen finden Sie unter Interne Warteschlangen und Warteschlangstrategien.

incomingMaxAge

Ruft das maximale Alter für eingehende Datenpakete in Millisekunden ab oder legt es fest. Gibt null zurück, wenn kein maximales Alter festgelegt wurde.

maxDatagramSize Schreibgeschützt

Gibt die maximal zulässige Größe ausgehender Datenpakete in Bytes zurück, die zu einem WebTransportDatagramsWritable geschrieben werden können, das über createWritable() oder die veraltete writable-Eigenschaft erhalten wird.

outgoingHighWaterMark

Ruft die maximale Größe in Chunks ab oder legt sie fest, die die interne Warteschlange des ausgehenden WritableStream erreichen kann, bevor sie als voll betrachtet wird. Weitere Informationen finden Sie unter Interne Warteschlangen und Warteschlangstrategien.

outgoingMaxAge

Ruft das maximale Alter für ausgehende Datenpakete in Millisekunden ab oder legt es fest. Gibt null zurück, wenn kein maximales Alter festgelegt wurde.

readable Schreibgeschützt

Gibt eine ReadableStream-Instanz zurück, die zum Lesen eingehender Datenpakete aus dem Stream verwendet werden kann.

writable Schreibgeschützt

Gibt eine WritableStream-Instanz zurück, die zum Schreiben ausgehender Datenpakete in den Stream verwendet werden kann.

Instanz-Methoden

createWritable()

Gibt eine WebTransportDatagramsWritable-Instanz zurück, die zum Schreiben ausgehender Datenpakete in den Stream verwendet werden kann.

Beispiele

Schreiben ausgehender Datenpakete

Dieser Code verwendet die createWritable()-Methode, wenn sie unterstützt wird, um eine WebTransportDatagramsWritable-Instanz zu erhalten, die zum Schreiben von Daten in den Transport verwendet werden kann. Andernfalls wird auf die writable-Eigenschaft zurückgegriffen, die ein WritableStream-Objekt zurückgibt, mit dem Daten mithilfe eines Schreibers geschrieben werden können:

js
const writableStream =
  typeof transport.datagrams.createWritable === "function"
    ? transport.datagrams.createWritable()
    : transport.datagrams.writable; // Deprecated and non-standard

const writer = writableStream.getWriter();
const data1 = new Uint8Array([65, 66, 67]);
const data2 = new Uint8Array([68, 69, 70]);
await writer.ready;
writer.write(data1);
await writer.ready;
writer.write(data2);

Lesen eingehender Datenpakete

Die readable-Eigenschaft gibt ein ReadableStream-Objekt zurück, das zum Empfangen von Daten vom Server verwendet werden kann:

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

Spezifikationen

Spezifikation
WebTransport
# webtransportdatagramduplexstream

Browser-Kompatibilität

Siehe auch