WebTransport:datagrams 属性

可用性受限

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

安全上下文:此功能仅在安全上下文(HTTPS)中可用,在一些或所有支持的浏览器中。

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

datagramsWebTransport 接口的只读属性,它返回一个 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

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅