1.5 KiB
1.5 KiB
- Протокол полнодуплескной(двунаправленной) связи поверх TCP-cоединения, предназначенный для обмена сообщениями между браузером и веб-сервером в режиме реального времени
- Позволяет серверу отправлять данные браузеру без дополнительного запроса со стороны клиента
- Обмен данными ведется через отдельное TCP-соединение
- Поддерживается всеми современными браузерами
- Альтернатива - AJAX + Long Polling
Пример кода
var webSocket = new WebSocket("ws://localhost/echo");
webSocket.onopen = function(event) {
webSocket.send("Hello");
}
webSocket.onmessage = function(event) {
webSocket.close();
}
webSocket.onclose = function(event) {}
Как устанавливается
- Браузер отправляет обычный HTTP-запрос с заголовком
Connection: UpgradeиUpgrade: websocket - Сервер отвечает
101(Switching Protocols) - HTTP обрывается, появляется чистый TCP-коннект
Плюсы
- Идеально для реалтайма
- Нулевые расходы на трафик
Минусы
- Сложнее администрировать