WebTransport: incomingUnidirectionalStreams property
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
Note: This feature is available in Web Workers.
The incomingUnidirectionalStreams
read-only property of the WebTransport
interface represents one or more unidirectional streams opened by the server. Returns a ReadableStream
of WebTransportReceiveStream
objects. Each one can be used to reliably read data from the server.
"Reliable" means that transmission and order of data are guaranteed. This provides slower delivery (albeit faster than with WebSockets) than datagrams
, but is needed in situations where reliability and ordering are important, like chat applications.
Value
A ReadableStream
of WebTransportReceiveStream
objects.
Examples
An initial function is used to read the WebTransportReceiveStream
objects from the ReadableStream
. Each object is then passed to another function to read from those streams.
async function receiveUnidirectional() {
const uds = transport.incomingUnidirectionalStreams;
const reader = uds.getReader();
while (true) {
const { done, value } = await reader.read();
if (done) {
break;
}
// value is an instance of WebTransportReceiveStream
await readData(value);
}
}
async function readData(receiveStream) {
const reader = receiveStream.getReader();
while (true) {
const { done, value } = await reader.read();
if (done) {
break;
}
// value is a Uint8Array
console.log(value);
}
}
Specifications
Specification |
---|
WebTransport # dom-webtransport-incomingunidirectionalstreams |
Browser compatibility
BCD tables only load in the browser