Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. Web APIs
  3. WebTransport
  4. createUnidirectionalStream()

WebTransport: createUnidirectionalStream() method

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 insecure contexts (HTTPS), in some or allsupporting browsers.

Note: This feature is available inWeb Workers.

ThecreateUnidirectionalStream() method of theWebTransport interface asynchronously opens a unidirectional stream.

The method returns aPromise that resolves to aWritableStream object, which can be used to reliably write data to the server.

"Reliable" means that transmission and order of data are guaranteed. This provides slower delivery (albeit faster than with WebSockets) thandatagrams, but is needed in situations where reliability and ordering are important, like chat applications.

The relative order in which queued bytes are emptied from created streams can be specified using thesendOrder option.If set, queued bytes in streams with a higher send order are guaranteed to be sent before queued bytes for streams with a lower send order.If the order number is not set then the order in which bytes are sent is implementation dependent.Note however that even though bytes from higher send-order streams are sent first, they may not arrive first.

Syntax

js
createUnidirectionalStream()createUnidirectionalStream(options)

Parameters

optionsOptional

An object that may have the following properties:

sendOrderOptional

A integer value specifying the send priority of this stream relative to other streams for which the value has been set.Queued bytes are sent first for streams that have a higher value.If not set, the send order depends on the implementation.

Return value

APromise that resolves to aWebTransportSendStream object (this is aWritableStream).

Exceptions

InvalidStateErrorDOMException

Thrown ifcreateUnidirectionalStream() is invoked while the WebTransport is closed or failed.

Examples

Use thecreateUnidirectionalStream() method to get a reference to aWritableStream. From this you canget a writer to allow data to be written to the stream and sent to the server.

Use theclose() method of the resultingWritableStreamDefaultWriter to close the associated HTTP/3 connection. The browser tries to send all pending data before actually closing the associated connection.

js
async function writeData() {  const stream = await transport.createUnidirectionalStream({    sendOrder: "596996858",  });  const writer = stream.getWriter();  const data1 = new Uint8Array([65, 66, 67]);  const data2 = new Uint8Array([68, 69, 70]);  writer.write(data1);  writer.write(data2);  try {    await writer.close();    console.log("All data has been sent.");  } catch (error) {    console.error(`An error occurred: ${error}`);  }}

You can also useWritableStreamDefaultWriter.abort() to abruptly terminate the stream. When usingabort(), the browser may discard any pending data that hasn't yet been sent.

js
// …const stream = await transport.createUnidirectionalStream();const writer = stream.getWriter();// …writer.write(data1);writer.write(data2);await writer.abort();// Not all the data may have been written.

Specifications

Specification
WebTransport
# dom-webtransport-createunidirectionalstream

Browser compatibility

See also

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp