Spec-Zone.ru › Web APIs

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);
}

Спецификации

Спецификация
WebTransport
# dom-webtransport-incomingbidirectionalstreams

Совместимость с браузерами

Десктоп Мобильные
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

См. также

  • Использование WebTransport
  • API WebSockets
  • API потоков
  • WebTransport через HTTP/3

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API