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 March 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.

Die WebTransportDatagramDuplexStream-Schnittstelle der WebTransport API repräsentiert einen Duplex-Stream, der für den unzuverlässigen Transport von Datagrammen zwischen Client und Server verwendet werden kann. Sie bietet Zugriff auf einen ReadableStream zum Lesen eingehender Datagramme, einen WritableStream zum Schreiben ausgehender Datagramme sowie verschiedene Einstellungen und Statistiken im Zusammenhang mit dem Stream.

Zugriff hierauf erfolgt über die WebTransport.datagrams-Eigenschaft.

"Unzuverlässig" bedeutet, dass die Übertragung von Daten nicht garantiert ist, noch die Ankunft in einer bestimmten Reihenfolge. Dies ist in einigen Situationen akzeptabel und ermöglicht eine sehr schnelle Lieferung. Beispielsweise könnten Sie regelmäßige Spielstand-Updates übertragen wollen, bei denen jede Nachricht die zuletzt eingetroffene überschreibt und die Reihenfolge nicht wichtig ist.

Instanz-Eigenschaften

incomingHighWaterMark

Ruft den Höchststand für eingehende Datenblöcke ab oder legt diesen fest – dies ist die maximale Größe, in Blöcken, die die interne Warteschlange des eingehenden ReadableStream erreichen kann, bevor sie als voll betrachtet wird. Weitere Informationen finden Sie unter Interne Warteschlangen und Warteschlangestrategien.

incomingMaxAge

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

maxDatagramSize Schreibgeschützt

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

outgoingHighWaterMark

Ruft den Höchststand für ausgehende Datenblöcke ab oder legt diesen fest – dies ist die maximale Größe, in Blöcken, die die interne Warteschlange des ausgehenden WritableStream erreichen kann, bevor sie als voll betrachtet wird. Weitere Informationen finden Sie unter Interne Warteschlangen und Warteschlangestrategien.

outgoingMaxAge

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

readable Schreibgeschützt

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

writable Schreibgeschützt

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

Instanz-Methoden

createWritable()

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

Beispiele

Schreiben ausgehender Datagramme

Dieser Code verwendet die createWritable()-Methode, sofern diese unterstützt wird, um eine WebTransportDatagramsWritable-Instanz zu erhalten, die zum Schreiben von Daten in den Transport verwendet werden kann. Andernfalls fällt er auf die writable-Eigenschaft zurück, die ein WritableStream-Objekt zurückgibt, in das Sie Daten mittels eines Writers schreiben 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 Datagramme

Die readable-Eigenschaft gibt ein ReadableStream-Objekt zurück, das Sie verwenden können, um Daten vom Server zu empfangen:

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