TGStat
TGStat
Введите текст для поиска
Расширенный поиск каналов
  • flag Russian
    Язык сайта
    flag Russian flag English flag Uzbek
  • Вход на сайт
  • Каталог
    Каталог каналов и чатов Региональные подборки Тематические подборки Платные каналы Поиск каналов
    Добавить канал/чат
  • Рейтинги
    Рейтинг каналов Рейтинг чатов Рейтинг публикаций
    Рейтинги брендов и персон
  • Аналитика
  • Поиск по публикациям
  • Мониторинг Telegram
  • Продвижение
    Реклама через Яндекс Бизнес Реклама в каналах через TGStat Agency Реклама на сайте TGStat.ru
твиттерэда | QA: резюме, собесы, оффер

6 Apr, 16:49

Открыть в Telegram Поделиться Пожаловаться

Что такое WebSocket и зачем он появился

WebSocket — это протокол, который позволяет установить постоянное соединение между клиентом и сервером и обмениваться данными в обе стороны в реальном времени. В отличие от классического HTTP, где всегда есть схема «запрос → ответ», здесь соединение остаётся открытым и данные могут приходить без нового запроса со стороны клиента.
Появился он из-за ограничений HTTP. Раньше, если нужно было обновлять данные в реальном времени (чаты, онлайн-игры, лайв-обновления, биржи), приходилось использовать костыли вроде polling или long polling. Это создавало лишнюю нагрузку на сервер и задержки, потому что клиент постоянно дёргал сервер, даже когда данных не было.
WebSocket решил эту проблему за счёт постоянного соединения и двусторонней передачи данных.

Где используется WebSocket?

Вообще WebSocket нужен везде, где важен реалтайм, где нельзя ждать, пока клиент сам пойдёт за данными. Это в первую очередь чаты и поддержка, когда сообщение должно прилетать сразу, без обновления страницы.
Онлайн-игры — там вообще без этого никак, потому что всё должно происходить мгновенно. Любые лайв-обновления интерфейса, типа уведомлений или изменения статусов. Биржи, где цены постоянно меняются и нужно это сразу показывать пользователю. Ну и всякая аналитика, трекинг действий, когда система в фоне отправляет события на сервер. Платформы видео-созвонов, мессенджеры и так даллее. По сути, практически ежедневно мы, как пользователи взаимодействуем с помошью сокета.

А что тестировать в WebSocket?

Первое — это подключение. Ты смотришь, что соединение вообще устанавливается нормально, без ошибок, без странных падений.
Дальше — сообщения. Проверяешь, что сервер корректно их принимает, нормально парсит и не разваливается на кривых данных.
Потом реакция системы. То есть не просто отправили сообщение, а что дальше? Дошло ли оно, правильно ли отобразилось, всё ли работает как ожидается.
Отдельно смотришь ошибки. Например, невалидный JSON, слишком большие сообщения, обрывы соединения — и как система на это реагирует.
Если есть подписки на события или каналы, обязательно проверяешь, что подписка и отписка работают как надо, без утечек и багов.
Дальше — сессии и токены. Классическая история: токен протух, и важно, чтобы соединение корректно закрылось, а не начало бесконечно переподключаться.
Ну и безопасность. В проде это должен быть wss, а не ws, потому что данные всё-таки могут быть чувствительные.

Эд, это все круто, но где потрогать вебсокет?


Самый простой способ понять, как он работает — открыть любой сайт, где есть реалтайм. Например, онлайн-чат.

Можно взять тот же Wink (или платформу видеозвонков например) и открыть чат поддержки. Дальше заходишь в DevTools → вкладка Network → фильтр WS (или Socket).

Что здесь важно посмотреть:

- как соединение сначала устанавливается как HTTP, а потом апгрейдится до WebSocket
- какие заголовки приходят (Connection: Upgrade, Upgrade: websocket)
- как выглядит сам обмен сообщениями
- какие события отправляет клиент и что отвечает сервер

По сути ты наблюдаешь весь реалтайм «под капотом» — как сообщения уходят, приходят и как поддерживается соединение.


Написано в соавторстве: @mashaqasha

6.2k 3 90 25 77
Каталог
Каталог каналов и чатов Подборки каналов Поиск каналов Добавить канал/чат
Рейтинги
Рейтинг каналов Telegram Рейтинг чатов Telegram Рейтинг публикаций Рейтинги брендов и персон
API
API статистики API поиска публикаций API Callback
Наши каналы
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Почитать
Академия TGStat Исследование Telegram 2019 Исследование Telegram 2021 Исследование Telegram 2023
Контакты
Справочный центр Поддержка Почта Вакансии
Всякая всячина
Пользовательское соглашение Политика конфиденциальности Публичная оферта
Наши боты
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot