WebSocketStream: свойство opened
Экспериментальное: Это экспериментальная технология
Перед использованием в продакшене внимательно изучите таблицу совместимости браузеров.
Примечание: Данная функция доступна в Web Workers.
Чтение-только свойство opened интерфейса WebSocketStream возвращает Promise, который выполняется с объектом, когда соединение сокета успешно открыто. Среди других функций, этот объект содержит экземпляр ReadableStream и WritableStream для получения и отправки данных по соединению.
Значение
Обещание, которое выполняется с объектом, содержащим следующие свойства:
extensions-
Строка, представляющая любые расширения, примененные к
WebSocketStream. Такие расширения в настоящее время не определены, но могут быть определены в будущем. В настоящее время возвращает пустую строку. protocol-
Строка, представляющая подпротокол, используемый для открытия текущего WebSocket-соединения (выбранный из параметров, указанных в параметре
protocolsконструктораWebSocketStream()). Возвращает пустую строку, если для открытия соединения не использовался подпротокол (т.е. параметры подпротокола не были включены в вызов конструктора). readable-
Экземпляр
ReadableStream. ВызовитеReadableStream.getReader()для получения экземпляраReadableStreamDefaultReader, который можно использовать для чтения входящих данных WebSocket. writable-
Экземпляр
WritableStream. ВызовитеWritableStream.getWriter()для получения экземпляраWritableStreamDefaultWriter, который можно использовать для записи данных в соединение WebSocket.
Обещание отклоняется, если соединение WebSocket не удалось.
Примеры
const wsURL = "wss://127.0.0.1/";
const wss = new WebSocketStream(wsURL);
async function start() {
const { readable, writable, extensions, protocol } = await wss.opened;
const reader = readable.getReader();
const writer = writable.getWriter();
writer.write("ping");
while (true) {
const { value, done } = await reader.read();
if (done) {
break;
}
setTimeout(() => {
writer.write("ping");
}, 5000);
}
}
См. Использование WebSocketStream для написания клиента для полного примера с полным объяснением.
Спецификации
В настоящее время не является частью какой-либо спецификации. См. https://github.com/whatwg/websockets/pull/48 для получения информации о процессе стандартизации.
Совместимость браузеров
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
opened |
124 | 124 | Нет | 110 | Нет | 124 | Нет | 82 | Нет | 27.0 | 124 |
См. также
- WebSocketStream: интеграция потоков с WebSocket API, developer.chrome.com (2020)
© 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/WebSocketStream/opened