WebTransport:incomingBidirectionalStreams 屬性
注意:此功能在 Web Workers 中可用。
WebTransport 介面的只讀屬性 incomingBidirectionalStreams 表示伺服器開啟的一個或多個雙向流。它返回一個 ReadableStream 物件,其中包含 WebTransportBidirectionalStream 物件。每個物件都可以用來可靠地從伺服器讀取資料並向其寫回資料。
“可靠”意味著保證資料的傳輸順序。這提供了比 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 |
瀏覽器相容性
載入中…