WebTransport:incomingBidirectionalStreams 属性
注意:此功能在Web Workers中可用。
WebTransport
接口的incomingBidirectionalStreams
只读属性表示服务器打开的一个或多个双向流。返回一个包含WebTransportBidirectionalStream
对象的ReadableStream
。每个流都可以用于可靠地从服务器读取数据并向其写入数据。
“可靠”意味着数据传输和顺序得到保证。与datagrams
相比,这提供速度较慢的传输(尽管比 WebSockets 快),但在可靠性和排序很重要的场景中是必要的,例如聊天应用程序。
值
示例
一个初始函数用于从ReadableStream
中读取WebTransportBidirectionalStream
对象。对于每个对象,WebTransportBidirectionalStream.readable
和WebTransportBidirectionalStream.writable
值被传递给其他函数,以便从这些流中读取和写入数据。
js
async function receiveBidirectional() {
const bds = transport.incomingBidirectionalStreams;
const reader = bds.getReader();
while (true) {
const { done, value } = await reader.read();
if (done) {
break;
}
// value is an instance of WebTransportBidirectionalStream
await readData(value.readable);
await writeData(value.writable);
}
}
async function readData(readable) {
const reader = readable.getReader();
while (true) {
const { value, done } = await reader.read();
if (done) {
break;
}
// value is a Uint8Array.
console.log(value);
}
}
async function writeData(writable) {
const writer = writable.getWriter();
const data1 = new Uint8Array([65, 66, 67]);
const data2 = new Uint8Array([68, 69, 70]);
writer.write(data1);
writer.write(data2);
}
规范
规范 |
---|
WebTransport # dom-webtransport-incomingbidirectionalstreams |
浏览器兼容性
BCD 表格仅在浏览器中加载