WebTransportDatagramDuplexStream: outgoingMaxBufferedDatagrams property
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 outgoingMaxBufferedDatagrams property of the WebTransportDatagramDuplexStream interface represents the maximum number of outgoing datagrams that can be queued for sending on each WebTransportDatagramsWritable before backpressure is applied.
Value
An integer.
The initial value is defined by the browser.
Setting the property to 0 sets it to 1.
Description
Each WebTransportDatagramsWritable returned by createWritable() has its own queue of datagrams waiting to be sent.
When the number of datagrams in a queue reaches this value, the writable applies backpressure: the promise returned by the writer's write() method, and its ready promise, don't fulfill until there is room in the queue for another datagram.
Queued datagrams are not dropped because the queue is full, though they can still expire if outgoingMaxAge is set.
Increasing this value releases backpressure on any writable whose queue is now shorter than the new value.
This property replaces the deprecated outgoingHighWaterMark property.
Examples
>Setting the maximum number of buffered outgoing datagrams
This example sets the outgoing queue of each writable to hold up to 100 datagrams, and then logs the value.
const url = "https://example.com:4999/wt";
async function initTransport(url) {
// Initialize transport connection
const transport = new WebTransport(url);
// The connection can be used once ready fulfills
await transport.ready;
const datagrams = transport.datagrams;
// set outgoingMaxBufferedDatagrams
datagrams.outgoingMaxBufferedDatagrams = 100;
// get outgoingMaxBufferedDatagrams
console.log(datagrams.outgoingMaxBufferedDatagrams);
}
Specifications
| Specification |
|---|
| WebTransport> # dom-webtransportdatagramduplexstream-outgoingmaxbuffereddatagrams> |