WebTransport: свойство incomingBidirectionalStreams
Ограниченная доступность
Эта функция не является базовой, так как она не работает в некоторых из наиболее широко используемых браузеров.
Защищённый контекст: Эта функция доступна только в защищённых контекстах (HTTPS), в некоторых или во всех поддерживающих браузерах.
Примечание: Эта функция доступна в Web Workers.
Свойство incomingBidirectionalStreams только для чтения интерфейса WebTransport представляет один или несколько двунаправленных потоков, открытых сервером. Возвращает ReadableStream объектов WebTransportBidirectionalStream. Каждый из них может использоваться для надёжного чтения данных с сервера и записи данных обратно на него.
«Надёжный» означает, что передача и порядок данных гарантированы. Это обеспечивает более медленную доставку (хотя быстрее, чем с WebSockets), чем datagrams, но необходимо в ситуациях, где важны надёжность и порядок, например, в приложениях чата.
Значение
A ReadableStream объектов WebTransportBidirectionalStream.
Примеры
Функция инициализации используется для чтения объектов WebTransportBidirectionalStream из ReadableStream. Для каждого из них значения WebTransportBidirectionalStream.readable и WebTransportBidirectionalStream.writable передаются другим функциям для чтения из этих потоков и записи в них.
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);
}
Спецификации
Совместимость с браузерами
| Десктоп | Мобильные | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
incomingBidirectionalStreams |
97 | 97 | 114 | 83 | Нет | 97 | 114 | 68 | Нет | 18.0 | 97 |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/WebTransport/incomingBidirectionalStreams