Протокол WebSocket обеспечивает возможность обмена данными между браузером и сервером через постоянное соединение. Данные передаются по нему в обоих направлениях в виде «пакетов», без разрыва соединения и дополнительных HTTP-запросов.
Он особенно хорош для сервисов, которые нуждаются в постоянном обмене данными, например онлайн игры, торговые площадки, работающие в реальном времени, и т.д.
Чтобы открыть веб-сокет-соединение, нам нужно создать объект new WebSocket, указав в url-адресе специальный протокол ws:
let socket = new WebSocket(“ws://javascript.info”);
Также существует протокол wss://, использующий шифрование. Это как HTTPS для веб-сокетов.
Как только объект WebSocket создан, мы должны слушать его события. Их всего 4:
open – соединение установлено,
message – получены данные,
error – ошибка,
close – соединение закрыто.
…А если мы хотим отправить что-нибудь, то вызов socket.send(data) сделает это.
let socket = new WebSocket(“wss://javascript.info/article/websocket/demo/hello”);
socket.onopen = function(e) {
alert(“[open] Соединение установлено”);
alert(“Отправляем данные на сервер”);
socket.send(“Меня зовут Джон”);