Что такое Websocket?
DOM и браузер
WebSocket — это протокол, обеспечивающий постоянное двустороннее соединение между клиентом и сервером, по которому обе стороны могут отправлять сообщения в реальном времени.
Отличие от HTTP
- HTTP — запрос-ответ: клиент спрашивает, сервер отвечает; сервер не может инициировать сообщение.
- WebSocket — одно постоянное соединение, обе стороны шлют данные в любой момент (full-duplex).
Как устанавливается
Начинается с HTTP-запроса с Upgrade: websocket — «рукопожатие», после которого соединение переключается на WebSocket-протокол (ws:// или wss://).
const socket = new WebSocket('wss://example.com');
socket.onopen = () => socket.send('привет');
socket.onmessage = (e) => console.log(e.data);
socket.onclose = () => console.log('закрыто');Где применяют
Чаты, уведомления, онлайн-игры, совместное редактирование, биржевые котировки, live-обновления.
Альтернативы
- Long Polling — эмуляция «пуша» повторными запросами.
- Server-Sent Events (SSE) — односторонний поток сервер → клиент.
- WebSocket — когда нужен именно двусторонний обмен.
Коротко для собеседования
WebSocket — протокол постоянного двустороннего (full-duplex) соединения для обмена сообщениями в реальном времени. Начинается с HTTP-рукопожатия (Upgrade), затем ws/wss. Для чатов, уведомлений, игр. Альтернативы — Long Polling и SSE (односторонний).