JavaScript WebSocket API (WebSockets)
Описание API
WebSocket API - это продвинутая технология, позволяющая страницам использовать протокол
WebSocket для открытия сеанса двусторонней интерактивной связи между браузером пользователя и сервером
(удаленным узлом). С помощью этого API можно отправлять сообщения на сервер и получать управляемые событиями
ответы, не опрашивая при этом сервер для получения ответа.
Протокол WebSocket это независимый протокол, основанный на протоколе TCP (англ.
Transmission Control Protocol - протокол управления передачей), он делает возможным более тесное взаимодействие
между браузером и веб-сайтом, способствуя распространению интерактивного содержимого и созданию приложений реального
времени.
Протокол WebSocket определяет две URI (англ. Uniform Resource Identifier - унифицированный
(единообразный) идентификатор ресурса) схемы:
ws:(нешифрованное соединение)wss:(шифрованное соединение)
Интерфейсы WebSocket API
| Интерфейс / объект | Описание |
|---|---|
CloseEvent |
Событие, отправляемое объектом
WebSocket
при закрытии соединения.
|
MessageEvent |
Событие, отправляемое объектом
WebSocket
при получении сообщения с сервера.
|
WebSocket
|
Является основным интерфейсом для осуществления подключения к серверу WebSocket и последующей
отправки и получения данных о подключении.
|
Поддержка браузерами
Спецификация: websockets.spec.whatwg
Поддерживается во всех основных браузерах с 2015 года.
Отдельные значения (1) поддерживаются не везде — смотрите таблицу.
| Возможность | Компьютеры | Мобильные | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
WebSocket | 5 | 12 | 11 Версия 11 выпущена в 2012 г. Версия 7 выпущена в 2011 г. — Удалено в 11; Префикс Moz Примечание MDN (англ.) Message size limited to 16 MB (see bug 711205). | 12.1 | 5 | 18 | 14 Версия 14 выпущена в 2012 г. Версия 7 выпущена в 2011 г. — Удалено в 14; Префикс Moz Примечание MDN (англ.) Message size limited to 16 MB (see bug 711205). | 12.1 | 4.2 | 1.0 | 4.4 | 4.2 |
new WebSocket() | 5 | 12 | 11 Версия 11 выпущена в 2012 г. Версия 7 выпущена в 2011 г. — Удалено в 11; Префикс Moz | 12.1 | 5 | 18 | 14 Версия 14 выпущена в 2012 г. Версия 7 выпущена в 2011 г. — Удалено в 14; Префикс Moz | 12.1 | 4.2 | 1.0 | 4.4 | 4.2 |
| url parameter allows https, http, and relative URLs | 125 | 125 | 124 | 111 | 17.3 | 125 | 124 | 83 | 17.3 | 27.0 | 125 | 17.3 |
binaryType | 15 | 12 | 11 | 12.1 | 6 | 18 | 14 | 12.1 | 6 | 1.0 | 4.4 | 6 |
bufferedAmount | 5 | 12 | 7 | 12.1 | 5 | 18 | 7 | 12.1 | 4.2 | 1.0 | 4.4 | 4.2 |
close | 5 | 12 | 7 | 12.1 | 5 | 18 | 7 | 12.1 | 4.2 | 1.0 | 4.4 | 4.2 |
| close event | 5 | 12 | 7 | 12.1 | 5 | 18 | 7 | 12.1 | 4.2 | 1.0 | 4.4 | 4.2 |
| error event | 5 | 12 | 7 | 12.1 | 5 | 18 | 7 | 12.1 | 4.2 | 1.0 | 4.4 | 4.2 |
extensions | 16 | 12 | 8 | 12.1 | 6 | 18 | 8 | 12.1 | 6 | 1.0 | 4.4 | 6 |
| Subject to Local Network Access restrictions | 147 | 147 | 131 | 147 | 98 | |||||||
| message event | 5 | 12 | 7 | 12.1 | 5 | 18 | 7 | 12.1 | 4.2 | 1.0 | 4.4 | 4.2 |
| open event | 5 | 12 | 7 | 12.1 | 5 | 18 | 7 | 12.1 | 4.2 | 1.0 | 4.4 | 4.2 |
protocol | 15 | 12 | 7 | 12.1 | 6 | 18 | 7 | 12.1 | 6 | 1.0 | 4.4 | 6 |
| Supports protocol as specified by RFC 6455 | 16 | 12 | 11 | 15 | 6 | 18 | 14 | 14 | 6 | 1.0 | 4.4 | 6 |
readyState | 5 | 12 | 7 | 12.1 | 5 | 18 | 7 | 12.1 | 4.2 | 1.0 | 4.4 | 4.2 |
send | 5 | 12 | 18 Версия 18 выпущена в 2013 г. Версия 11 выпущена в 2012 г. — Удалено в 18 Примечание MDN (англ.) Only parameter of type Версия 8 выпущена в 2011 г. — Удалено в 11 Примечание MDN (англ.) Only parameter of type Версия 7 выпущена в 2011 г. — Удалено в 8 Примечание MDN (англ.) Only parameter of type | 12.1 | 5 | 18 | 18 Версия 18 выпущена в 2013 г. Версия 14 выпущена в 2012 г. — Удалено в 18 Примечание MDN (англ.) Only parameter of type Версия 8 выпущена в 2011 г. — Удалено в 14 Примечание MDN (англ.) Only parameter of type Версия 7 выпущена в 2011 г. — Удалено в 8 Примечание MDN (англ.) Only parameter of type | 12.1 | 4.2 | 1.0 | 4.4 | 4.2 |
url | 18 | 12 | 7 | 12.1 | 6 | 18 | 7 | 12.1 | 6 | 1.0 | 4.4 | 6 |
| Available in workers | 5 | 12 | 37 | 12.1 | 5 | 18 | 37 | 12.1 | 5 | 1.0 | 4.4 | 5 |
поддерживаетсяс ограниченияминет поддержкинет данных≤31 — не позднее версии 31
Классический WebSocket не управляет обратным давлением автоматически: при больших потоках данных
контролируйте очередь через bufferedAmount. WebSocketStream — отдельное экспериментальное
API потоков с ограниченной поддержкой, а не метод WebSocket.