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

1 Sep 2023, 13:05

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

WebSocket: что это, когда следует использовать и какие преимущества дает

WebSocket — это технология, которая позволяет клиенту установить двухстороннюю («дуплексную») связь с сервером. Это означает, что он может одновременно и получать, и передавать информацию. Веб-сокет делает это множество раз в одном открытом соединении. В этом и заключается его основное преимущество по сравнению с традиционным HTTP, который является однонаправленным.

В HTTP каждый новый запрос устанавливает новое соединение с сервером: сколько запросов, столько и соединений. Процесс передачи данных происходит с некоторыми задержками за счет того, что есть накладные расходы на установку нового соединения при каждом запросе/ответе, а также сетевая и серверная нагрузка из-за обилия периодических запросов.

Механизм работы WebSocket

Физически WebSocket представляет собой протокол поверх TCP-соединения, как и HTTP (см. модель OSI).

1️⃣ Для установления соединения веб-сокет применяет метод открывающего рукопожатия. Он заключается в том, что клиент предваряет отправку/получение сообщений предварительным запросом, в котором клиент и сервер «договариваются» использовать веб-сокеты. Запрос отправляется на ws: или wss:: URI (аналог http или https).

2️⃣ Если сервер устанавливает соединение WebSocket, то сервер отправляет ответ об успешном рукопожатии. На это указывает HTTP-код 101 Switching Protocols.

3️⃣ После установления соединения протокол переключается с HTTP на WebSocket. Под капотом у нас остаётся TCP, который является двунаправленным протоколом. Веб-сокеты могут отправлять любые данные, даже очень большие, например, изображения. Для этого данные разбиваются на части, называемые фреймами. Каждый фрейм имеет заголовок, в котором указана информация о данных, такая как их размер и тип. Также заголовок содержит флаг, который показывает, является ли фрейм последним или нет.

4️⃣ Сервер может открывать несколько соединений WebSocket с несколькими клиентами или даже с одним и тем же клиентом. При этом сервер может отправить сообщение одному, нескольким или всем этим клиентам сразу.

5️⃣ Соединение, установленное с помощью WebSocket, сохраняется до тех пор, пока его не прервет любой из участников. Если одна сторона разрывает соединение, то другая не сможет продолжить коммуникацию, поскольку соединение автоматически разрывается для обоих участников.


✅ Когда использовать WebSocket

WebSocket подходит, когда нужны обновления данных в реальном времени и возможность доставлять сообщения клиенту без постоянных запросов (например, фондовые биржи, игровые приложения, чаты, IoT).


❌ Когда не стоит использовать WebSocket

1. Когда нужно получить неизменные данные, которые извлекаются только один раз, чтобы обработать их приложением, лучше использовать протокол HTTP, а не WebSocket.

2. Когда не нужно сохранять соединение в течение определенного времени или повторно использовать одно соединение для передачи данных. Например, ситуации, когда сервер должен отдать все данные для формы одним ответом.

📎 Материалы по теме
1. RFC 6455 - The WebSocket Protocol
2. WebSocket: что это, когда следует использовать и какие преимущества дает
3. Что такое веб-сокеты и как они вообще работают
4. WebSocket: смотрим как работает за кулисами
5. Асинхронный веб, или Что такое веб-сокеты

#интеграции

1.5k 0 24 15
Каталог
Каталог каналов и чатов Подборки каналов Поиск каналов Добавить канал/чат
Рейтинги
Рейтинг каналов 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