WebSocket (RFC 6455) — протокол поверх TCP, обеспечивающий full-duplex bidirectional коммуникацию между браузером и сервером. В отличие от HTTP, соединение остаётся открытым, сервер может push без запроса. Использование: real-time chat, live notifications, multiplayer games, collaborative editing. Handshake через HTTP Upgrade header → переход на ws:// или wss://.
Ниже: подробности, пример, смежные термины, FAQ.
Upgrade: websocket + Connection: Upgradeconst ws = new WebSocket('wss://example.com/socket');
ws.onmessage = e => console.log(e.data);
ws.onopen = () => ws.send(JSON.stringify({ type: 'subscribe' }));WebSocket — bidirectional (сервер и клиент обе шлют). SSE — одноcторонние (только server→client). SSE проще и работает через HTTP, WebSocket быстрее.
Implement reconnect с exponential backoff. Socket.IO делает это автоматически.
Один Node.js handles 10k+ concurrent WebSockets. Для 100k+ — Redis pub/sub между instances или managed service (Ably, Pusher).