Spec-Zone.ru › Web APIs

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: он будет пустой строкой, если подключение не может быть установлено.

Исключения

SyntaxError DOMException

Выбрасывается, если:

  • не удаётся разобрать 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

Spec-Zone.ru

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