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 |
瀏覽器相容性
載入中…