WebTransport: datagrams 属性

可用性有限

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

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

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

WebTransport 接口的只读属性 datagrams 返回一个 WebTransportDatagramDuplexStream 实例,该实例可用于发送和接收数据报 — 不可靠的数据传输。

“不可靠”意味着数据传输不被保证,也不会按特定顺序到达。在某些情况下,这没问题,而且可以提供非常快速的传输。例如,您可能希望传输定期的游戏状态更新,其中每个消息都会覆盖最后一个到达的消息,并且顺序不重要。

一个 WebTransportDatagramDuplexStream 对象。

示例

写入传出的数据报

WebTransportDatagramDuplexStream.writable 属性返回一个 WritableStream 对象,您可以使用写入器向该对象写入数据,以便传输到服务器。

js
const writer = transport.datagrams.writable.getWriter();
const data1 = new Uint8Array([65, 66, 67]);
const data2 = new Uint8Array([68, 69, 70]);
writer.write(data1);
writer.write(data2);

读取传入的数据报

WebTransportDatagramDuplexStream.readable 属性返回一个 ReadableStream 对象,您可以使用该对象从服务器接收数据。

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

规范

规范
WebTransport
# dom-webtransport-datagrams

浏览器兼容性

另见