WebTransport: datagrams-Eigenschaft
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.
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 schreibgeschützte Eigenschaft datagrams der Schnittstelle WebTransport gibt eine Instanz von WebTransportDatagramDuplexStream zurück, mit der Datagramme gesendet und empfangen werden können – eine unzuverlässige Form der Datenübertragung.
„Unzuverlässig“ bedeutet, dass weder die Übertragung der Daten noch ihre Ankunft in einer bestimmten Reihenfolge garantiert ist. In manchen Situationen ist das unproblematisch und ermöglicht eine sehr schnelle Übertragung. Beispielsweise können Sie regelmäßige Aktualisierungen des Spielzustands übertragen, bei denen jede Nachricht die zuletzt angekommene ersetzt und die Reihenfolge keine Rolle spielt.
Wert
Ein WebTransportDatagramDuplexStream-Objekt.
Beispiele
>Ein ausgehendes Datagramm schreiben
Dieser Code verwendet, falls unterstützt, die Methode createWritable(), um eine Instanz von WebTransportDatagramsWritable zu erhalten, mit der Daten zur Übertragung geschrieben werden können.
Andernfalls greift er auf die Eigenschaft writable zurück. Diese gibt ein WritableStream-Objekt zurück, in das Sie mithilfe eines Writers Daten für die Übertragung an den Server 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);
Ein eingehendes Datagramm lesen
Die Eigenschaft WebTransportDatagramDuplexStream.readable gibt ein ReadableStream-Objekt zurück, mit dem Sie Daten vom Server empfangen können:
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);
}
}
Wenn Sie Datagramme stattdessen in einen von Ihnen bereitgestellten Puffer einlesen möchten, erstellen Sie den Transport mit der Option datagramsReadableType auf bytes gesetzt und lesen Sie den Stream mit einem ReadableStreamBYOBReader.
Siehe das Beispiel Datagramme mit einem BYOB-Reader lesen auf der Seite zum Konstruktor WebTransport().
Spezifikationen
| Spezifikation |
|---|
| WebTransport> # dom-webtransport-datagrams> |