WebSocket: WebSocket() конструктор
Базовая Широко доступная *
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с июля 2015 года.
* Некоторые части этой функции могут иметь различный уровень поддержки.
Примечание: Эта функция доступна в Потоках JavaScript.
Конструктор WebSocket() возвращает новый объект WebSocket и сразу пытается установить соединение с указанным URL WebSocket.
Синтаксис
new WebSocket(url) new WebSocket(url, protocols)
Параметры
url-
URL целевого сервера WebSocket для подключения. URL должен использовать один из следующих схем:
ws,wss,http, илиhttps, и не может включать фрагмент URL. Если указан относительный URL, он относиться к базовому URL вызываемого скрипта. protocolsНеобязательно-
Одна строка или массив строк, представляющих подпротокол(ы), которые клиент хотел бы использовать в порядке предпочтения. Если он опущен, по умолчанию используется пустой массив, т.е.
[].Один сервер может реализовывать несколько подпротоколов WebSocket и обрабатывать разные типы взаимодействий в зависимости от указанного значения. Однако обратите внимание, что только один подпротокол может быть выбран для каждого подключения.
Допустимые значения — те, которые могут быть указаны в заголовке HTTP
Sec-WebSocket-Protocol. Эти значения выбираются из реестра IANA имен подпротоколов WebSocket, таких какsoap,wamp,shipи так далее, или могут быть пользовательскими, согласованными клиентом и сервером.Примечание: Подключение не устанавливается до тех пор, пока подпротокол не будет согласован с сервером. Выбранный протокол затем можно прочитать из
WebSocket.protocol: он будет пустой строкой, если подключение не может быть установлено.
Исключения
-
SyntaxErrorDOMException -
Выбрасывается, если:
- не удаётся разобрать
url -
urlимеет схему, отличную отws,wss,http, илиhttps -
urlимеет фрагмент - любое из значений в
protocolsвстречается более одного раза или иным образом не соответствует требованиям элементов, составляющих значение полейSec-WebSocket-Protocolв соответствии со спецификацией протокола WebSocket
- не удаётся разобрать
Примеры
Примеры ниже показывают, как подключиться к WebSocket.
Ниже приведен код, демонстрирующий подключение к сокету с использованием URL со схемой wss:
const wssWebSocket = new WebSocket('wss://websocket.example.org');
console.log(wssWebSocket.url); // 'wss://websocket.example.org'
... // Do something with socket
wssWebSocket.close();
Код для подключения к HTTPS URL почти такой же. Под капотом браузер разрешает это как соединение "WSS", поэтому у WebSocket.url будет схема "wss:".
const httpsWebSocket = new WebSocket('https://websocket.example.org');
console.log(httpsWebSocket.url); // 'wss://websocket.example.org'
... // Do something with socket
httpsWebSocket.close();
Мы также можем разрешить относительные URL. Абсолютный URL будет зависеть от базового URL контекста, в котором он вызывается.
relativeWebSocket = new WebSocket('/local/url');
... // Do something with socket
relativeWebSocket.close();
Спецификации
| Спецификация |
|---|
| WebSockets # ref-for-dom-websocket-websocket① |
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
WebSocket |
5 | 12 | 117–11 | 12.1 | 5 | 18 | 147–14 | 12.1 | 4.2 | 1.0 | 4.4 |
url_parameter_http_https_relative |
125 | 125 | 124 | 111 | 17.3 | 125 | 124 | 83 | 17.3 | 27.0 | 125 |
См. также
- RFC 6455 (спецификация протокола WebSocket)
© 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/WebSocket/WebSocket