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.
Das WebTransportDatagramDuplexStream-Interface der WebTransport API repräsentiert einen Duplex-Stream, der für den unzuverlässigen Transport von Datagrammen zwischen Client und Server genutzt werden kann. Es bietet Zugriff auf einen ReadableStream zum Lesen eingehender Datagramme, einen WritableStream zum Schreiben ausgehender Datagramme sowie auf verschiedene Einstellungen und Statistiken im Zusammenhang mit dem Stream.
Dies wird über die WebTransport.datagrams-Eigenschaft aufgerufen.
"Unzuverlässig" bedeutet, dass die Übertragung von Daten nicht garantiert ist, ebenso wenig wie die Ankunft in einer bestimmten Reihenfolge. Dies ist in einigen Situationen ausreichend und ermöglicht eine sehr schnelle Lieferung. Beispielsweise könnten Sie regelmäßige Spielzustands-Updates übertragen wollen, bei denen jede Nachricht die vorhergehende ersetzt und die Reihenfolge nicht wichtig ist.
Instanz-Eigenschaften
incomingHighWaterMark-
Ruft den High-Water-Mark für eingehende Datenstücke ab oder setzt ihn — dies ist die maximale Größe in Datenstücken, die die interne Warteschlange des eingehenden
ReadableStreamerreichen kann, bevor sie als voll gilt. Weitere Informationen finden Sie unter Interne Warteschlangen und Warteschlangenstrategien. incomingMaxAge-
Ruft das maximale Alter für eingehende Datagramme in Millisekunden ab oder setzt es. Gibt
nullzurück, wenn kein maximales Alter festgelegt wurde. maxDatagramSizeSchreibgeschützt-
Gibt die maximal zulässige Größe ausgehender Datagramme in Bytes zurück, die zu einem
WebTransportDatagramsWritablegeschrieben werden können, das übercreateWritable()oder die veraltetewritable-Eigenschaft erhalten wurde. outgoingHighWaterMark-
Ruft den High-Water-Mark für ausgehende Datenstücke ab oder setzt ihn — dies ist die maximale Größe in Datenstücken, die die interne Warteschlange des ausgehenden
WritableStreamerreichen kann, bevor sie als voll gilt. Weitere Informationen finden Sie unter Interne Warteschlangen und Warteschlangenstrategien. outgoingMaxAge-
Ruft das maximale Alter für ausgehende Datagramme in Millisekunden ab oder setzt es. Gibt
nullzurück, wenn kein maximales Alter festgelegt wurde. readableSchreibgeschützt-
Gibt eine
ReadableStream-Instanz zurück, die verwendet werden kann, um eingehende Datagramme aus dem Stream zu lesen. writableSchreibgeschützt-
Gibt eine
WritableStream-Instanz zurück, die verwendet werden kann, um ausgehende Datagramme in den Stream zu schreiben.
Instanz-Methoden
createWritable()-
Gibt eine
WebTransportDatagramsWritable-Instanz zurück, die verwendet werden kann, um ausgehende Datagramme in den Stream zu schreiben.
Beispiele
>Schreiben ausgehender Datagramme
Dieser Code verwendet die createWritable()-Methode, falls sie unterstützt wird, um eine WebTransportDatagramsWritable-Instanz zu erhalten, die zum Schreiben von Daten in den Transport verwendet werden kann.
Andernfalls greift er auf die veraltete writable-Eigenschaft zurück, die ein WritableStream-Objekt zurückgibt, in das Sie unter Verwendung eines Writers Daten schreiben können:
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 verwendet werden kann, um Daten vom Server zu empfangen:
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> |