Что такое WebSocket
WebSocket — это протокол для двустороннего общения между браузером и сервером в реальном времени. Обычный HTTP — как письма: ты пишешь запрос, сервер отвечает, разговор закончен. WebSocket — как телефонный звонок: соединение остаётся открытым, и любая сторона может отправить сообщение в любой момент.
Без WebSocket реализация чатов, игр, трейдинговых платформ требовала костылей: браузер постоянно отправлял HTTP-запросы («есть новое сообщение?») — это называется polling. Это медленно, неэффективно и нагружает сервер.
Как работает WebSocket
WebSocket начинается с обычного HTTP-запроса с особым заголовком: Upgrade: websocket. Если сервер поддерживает WebSocket, он отвечает «101 Switching Protocols» и соединение «апгрейдится» — превращается в постоянный двусторонний канал. Теперь и сервер, и браузер могут отправлять данные без ожидания запроса.
WebSocket работает поверх TCP, что гарантирует надёжную доставку сообщений.
Где используется WebSocket
Чаты и мессенджеры: новое сообщение приходит мгновенно без перезагрузки страницы. WhatsApp Web, Telegram Web — WebSocket.
Онлайн-игры: позиции игроков, события в реальном времени. Задержка критична — WebSocket её минимизирует.
Финансовые платформы: котировки акций и криптовалют обновляются в реальном времени — именно через WebSocket.
Совместное редактирование: Google Docs синхронизирует изменения от нескольких пользователей одновременно через WebSocket.
WebSocket vs Server-Sent Events vs HTTP/2 Push
Есть альтернативы: Server-Sent Events (SSE) — только сервер → клиент, проще, но однонаправленный. HTTP/2 Server Push — сервер отправляет ресурсы без запроса. WebSocket выбирают, когда нужна настоящая двусторонняя связь с низкой задержкой.
