WebTransport:incomingUnidirectionalStreams 属性

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

安全上下文: 此功能仅在安全上下文(HTTPS)中可用,且支持此功能的浏览器数量有限。

注意:此功能在 Web Workers 中可用。

WebTransport 接口的只读属性 incomingUnidirectionalStreams 表示服务器打开的一个或多个单向流。返回一个 WebTransportReceiveStream 对象的 ReadableStream。每个对象都可以用来可靠地从服务器读取数据。

“可靠”意味着保证数据的传输顺序。这提供了比 datagrams 更慢的传输速度(尽管比 WebSockets 快),但在可靠性和顺序性至关重要的情况下是必需的,例如聊天应用程序。

一个 WebTransportReceiveStream 对象的 ReadableStream

示例

使用一个初始函数从 ReadableStream 中读取 WebTransportReceiveStream 对象。然后将每个对象传递给另一个函数来读取这些流。

js
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);
  }
}

规范

规范
WebTransport
# dom-webtransport-incomingunidirectionalstreams

浏览器兼容性

另见