WebTransport
Ограниченная доступность
Эта функция не является базовой, так как не работает в некоторых из самых широко используемых браузеров.
Защищённый контекст: Эта функция доступна только в защищённых контекстах (HTTPS), в некоторых или всех поддерживающих браузерах.
Примечание: Эта функция доступна в Web Workers.
Интерфейс WebTransport API WebTransport предоставляет возможность пользовательскому агенту подключаться к серверу HTTP/3, инициировать надёжный и ненадежный транспорт в одном или обоих направлениях и закрывать соединение, когда оно больше не требуется.
Конструктор
WebTransport()-
Создаёт новый экземпляр объекта
WebTransport.
Свойства экземпляра
-
closedТолько для чтения -
Возвращает промис, который выполняется, когда транспорт закрыт.
-
datagramsТолько для чтения -
Возвращает экземпляр
WebTransportDatagramDuplexStream, который может использоваться для отправки и получения дейтаграмм. -
congestionControlТолько для чтения Экспериментальная -
Возвращает строку, которая указывает предпочтение приложения для высокой пропускной способности или низкой задержки при отправке данных.
-
incomingBidirectionalStreamsТолько для чтения -
Представляет один или несколько двунаправленных потоков, открытых сервером. Возвращает
ReadableStreamобъектовWebTransportBidirectionalStream. Каждый из них может быть использован для чтения данных с сервера и записи данных обратно на него. -
incomingUnidirectionalStreamsТолько для чтения -
Представляет один или несколько однонаправленных потоков, открытых сервером. Возвращает
ReadableStreamобъектовWebTransportReceiveStream. Каждый из них может быть использован для чтения данных с сервера. -
readyТолько для чтения -
Возвращает промис, который выполняется, когда транспорт готов к использованию.
-
reliabilityТолько для чтения Экспериментальная -
Возвращает строку, которая указывает, поддерживает ли соединение только надёжные каналы передачи данных или также поддерживает ненадежные каналы передачи данных (такие как UDP).
Методы экземпляра
close()-
Закрывает текущую сессию WebTransport.
createBidirectionalStream()-
Асинхронно открывает двунаправленный поток (
WebTransportBidirectionalStream), который можно использовать для чтения из и записи в сервер. createUnidirectionalStream()-
Асинхронно открывает однонаправленный поток (
WritableStream), который можно использовать для записи на сервер. -
getStats()Экспериментальная -
Асинхронно возвращает
Promise, который выполняется с объектом, содержащим статистику подключения HTTP/3.
Примеры
Пример кода ниже показывает, как подключиться к серверу HTTP/3, передав его URL в конструктор WebTransport(). Обратите внимание, что схема должна быть HTTPS, а номер порта должен быть явно указан. После выполнения промиса WebTransport.ready вы можете начать использовать соединение.
async function initTransport(url) {
// Initialize transport connection
const transport = new WebTransport(url);
// The connection can be used once ready fulfills
await transport.ready;
return transport;
}
Вы можете отреагировать на закрытие соединения, дождавшись выполнения промиса WebTransport.closed. Ошибки, возвращаемые операциями WebTransport, имеют тип WebTransportError и содержат дополнительные данные помимо стандартного набора DOMException.
Метод closeTransport() ниже показывает возможное реализацию. Внутри блока try...catch он использует await, чтобы дождаться выполнения или отклонения промиса closed, а затем сообщает, было ли закрытие соединения преднамеренным или по ошибке.
async function closeTransport(transport) {
// Respond to connection closing
try {
await transport.closed;
console.log(`The HTTP/3 connection to ${url} closed gracefully.`);
} catch (error) {
console.error(`The HTTP/3 connection to ${url} closed due to ${error}.`);
}
}
Мы можем вызвать асинхронные функции выше в своей собственной асинхронной функции, как показано ниже.
// Use the transport
async function useTransport(url) {
const transport = await initTransport(url);
// Use the transport object to send and receive data
// ...
// When done, close the transport
await closeTransport(transport);
}
const url = "https://example.com:4999/wt";
useTransport(url);
Другие примеры кода можно найти на страницах отдельных свойств и методов.
Спецификации
| Спецификация |
|---|
| WebTransport # web-transport |
Совместимость с браузерами
| Рабочий стол | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
WebTransport |
97 | 97 | 114 | 83 | Нет | 97 | 114 | 68 | Нет | 18.0 | 97 |
WebTransport |
97 | 97 | 114 | 83 | Нет | 97 | 114 | 68 | Нет | 18.0 | 97 |
byob_readers |
109 | 109 | 114 | 95 | Нет | 109 | 114 | 74 | Нет | 21.0 | 109 |
close |
97 | 97 | 114 | 83 | Нет | 97 | 114 | 68 | Нет | 18.0 | 97 |
closed |
97 | 97 | 114 | 83 | Нет | 97 | 114 | 68 | Нет | 18.0 | 97 |
congestionControl |
Нет | Нет | 114 | Нет | Нет | Нет | 114 | Нет | Нет | Нет | Нет |
createBidirectionalStream |
97 | 97 | 114 | 83 | Нет | 97 | 114 | 68 | Нет | 18.0 | 97 |
createUnidirectionalStream |
97 | 97 | 114ВозвращаетWritableStream вместо WebTransportSendStream. |
83 | Нет | 97 | 114ВозвращаетWritableStream вместо WebTransportSendStream. |
68 | Нет | 18.0 | 97 |
datagrams |
97 | 97 | 114 | 83 | Нет | 97 | 114 | 68 | Нет | 18.0 | 97 |
getStats |
Нет | Нет | 114Метод определён, но выбрасывает ошибку «не реализовано». |
Нет | Нет | Нет | 114Метод определён, но выбрасывает ошибку «не реализовано». |
Нет | Нет | Нет | Нет |
incomingBidirectionalStreams |
97 | 97 | 114 | 83 | Нет | 97 | 114 | 68 | Нет | 18.0 | 97 |
incomingUnidirectionalStreams |
97 | 97 | 114 | 83 | Нет | 97 | 114 | 68 | Нет | 18.0 | 97 |
ready |
97 | 97 | 114 | 83 | Нет | 97 | 114 | 68 | Нет | 18.0 | 97 |
reliability |
Нет | Нет | 114 | Нет | Нет | Нет | 114 | Нет | Нет | Нет | Нет |
См. также
© 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