Не упусти!

Круто, что тебе интересны наши курсы!

И именно за твой интерес и желание развиваться мы дарим тебе скидку!

Заполни данные ниже и на почту прийдет письмо с промокодом для тебя со скидкой на любой курс!

Отлично!

Ваш промокод на скидку отправлен на Ваш E-mail. Проверте пожалуйста Вашу почту.

Проверьте все папки в вашем почтовом ящике (спам, промоакции).

Что такое веб-сокеты?

Что такое веб-сокеты?

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

Как работает HTTP?

Схема обмена сообщениями по HTTP


Вы наверняка знаете, что такое HTTP (или HTTPS), поскольку встречаетесь с этим протоколом каждый день в своём браузере. Браузер постоянно спрашивает у сервера, есть ли для него новые сообщения, и получает их.

Вы также можете знать, что HTTP позволяет использовать разные типы запросов, такие как POST, GET или PUT, каждый из которых имеет своё назначение.

Как работают веб-сокеты?

Схема обмена сообщениями при использовании веб-сокетов


Веб-сокетам же для ответа не нужны ваши повторяющиеся запросы. Достаточно выполнить один запрос и ждать отклика. Вы можете просто слушать сервер, который будет отправлять вам сообщения по мере готовности.

Веб-сокеты можно использовать, если вы разрабатываете:

  • приложения реального времени;
  • чат-при
  • IoT-приложения;
  • многопользовательские игры.

Когда следует избегать использования веб-сокетов?

Практически никогда. Единственный минус — это несовместимость с некоторыми браузерами, но уже 95 % браузеров поддерживают веб-сокеты.

В некоторых случаях веб-сокеты вам всё же не понадобятся. Если вы создаёте простую CMS, вам вряд ли пригодится функциональность в режиме реального времени. Также не стоит использовать веб-сокеты в REST API, поскольку вам хватит таких HTTP-запросов, как GET, POST, DELETE и PUT.


Практические примеры
В примерах ниже для клиента используется JavaScript, а для сервера — Node.js. Примеры очень просты и вряд ли пригодятся на практике, но зато позволят разобраться в сути.


Веб-сокеты


Клиент:


Сервер:

Вот иллюстрация работы веб-сокетов:

Демонстрация работы веб-сокетов

 


Эквивалент в HTTP
Так как HTTP должен постоянно проверять канал на наличие новых сообщений, можно использовать «грязную» проверку (dirty check) — подход, при котором клиент с заданной периодичностью (допустим, каждые 200 мс) проверяет наличие новых сообщений на сервере.


Чтобы не вникать в XMLHttpRequest, можно использовать библиотеку Axios. Она декларативна и очень понятна.

Клиент:


Сервер:

 

рекомендуемые статьи

6 главных тенденций дизайна интерьера в 2021 году 6 главных тенденций дизайна интерьера в 2021 году...
Все, что нужно знать о дизайне интерьера в этом году
15 советов для улучшения формы 15 советов для улучшения формы
Формы являются неотъемлемой частью любого пользовательского интерфейса. Они устанавливают синхронный канал связи между предприятиями и пользователями. Их важность не вызывает сомнений, но в сети все еще есть множество пр...
Книги по графическому дизайну, которые должен прочесть каждый дизайнер в 2021 году Книги по графическому дизайну, которые должен прочесть каждый дизайнер в 2021 го...
Графический дизайн - невероятно важная часть в нашем мире. Согласно данным статистики труда США, только в США насчитывается 281 500 рабочих мест в графическом дизайне....
Топ-10 комбинаций шрифтов 2021 Топ-10 комбинаций шрифтов 2021
Все еще не нашли то, что искали? Вот несколько комбинаций шрифтов, которые могут идеально подойти для вашего следующего дизайна....
Soft Skills Дизайнера Soft Skills Дизайнера
Чтобы стать профессионалом в творческой индустрии, вам необходимо иметь несколько вещей.
5 вещей, с которыми дизайнеры не столкнутся сегодня 5 вещей, с которыми дизайнеры не столкнутся сегодня...
Насколько мир дизайна отличается от прежнего