Value
A WebTransportDatagramDuplexStream object.
Examples
Writing an outgoing datagram
This code uses the createWritable() method, if it is supported, to get a WebTransportDatagramsWritable instance that can be used for writing data to the transport.
Otherwise, it falls back to the writable property , which returns a WritableStream object that you can write data to using a writer, for transmission to the server:
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);
Reading an incoming datagram
The WebTransportDatagramDuplexStream.readable property returns a ReadableStream object that you can use to receive data from the server:
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);
}
}
Specifications
| Specification |
|---|
| WebTransport # dom-webtransport-datagrams |