WebTransportDatagramDuplexStream
注意:此功能在 Web Workers 中可用。
WebTransportDatagramDuplexStream 接口是 WebTransport API 的一部分,它代表一个双工流,可用于客户端和服务器之间不可靠的数据报传输。它提供了对用于读取传入数据报的 ReadableStream、用于写入传出数据报的 WritableStream 以及与流相关的各种设置和统计信息的访问权限。
通过 WebTransport.datagrams 属性访问此接口。
“不可靠”意味着数据传输不被保证,也不会按特定顺序到达。在某些情况下,这没问题,而且可以提供非常快速的传输。例如,您可能希望传输定期的游戏状态更新,其中每个消息都会覆盖最后一个到达的消息,并且顺序不重要。
实例属性
incomingHighWaterMark-
获取或设置传入数据块的高水位标记 — 这是传入
ReadableStream内部队列在被认为已满之前可以达到的最大块数。有关更多信息,请参阅 内部队列和队列策略。 incomingMaxAge-
获取或设置传入数据报的最大年龄(以毫秒为单位)。如果未设置最大年龄,则返回
null。 maxDatagramSize只读-
返回可以写入
writable的传出数据报的最大允许大小(以字节为单位)。 outgoingHighWaterMark-
获取或设置传出数据块的高水位标记 — 这是传出
WritableStream内部队列在被认为已满之前可以达到的最大块数。有关更多信息,请参阅 内部队列和队列策略。 outgoingMaxAge-
获取或设置传出数据报的最大年龄(以毫秒为单位)。如果未设置最大年龄,则返回
null。 readable只读-
返回一个
ReadableStream实例,可用于从流中读取传入的数据报。 writable只读 已弃用-
返回一个
WritableStream实例,可用于将传出数据报写入流。
示例
写入传出数据报
writable 属性返回一个 WritableStream 对象,您可以使用编写器向其写入数据,以便传输到服务器。
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);
读取传入数据报
readable 属性返回一个 ReadableStream 对象,您可以使用它从服务器接收数据。
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 # webtransportdatagramduplexstream |
浏览器兼容性
加载中…