Знакомство с WebSocket

10:28

cloud_downloadСкачать код

WebSocket - очень интересная технология, позволяющая реализовать двусторонний обмен данными между клиентом и браузером в режиме реального времени. Веб-сокеты используют свой отдельный протокол (ws://localhost) приема и отправки сообщений от TCP-сервера.

Веб-сокеты - относительно новая технология, до появления которой сервер не мог отправлять данные клиенту без предварительного запроса. Браузерам приходилось постоянно отправлять на сервер запрос, чтобы узнать изменилось что-то или нет. Этот процесс называется поллинг (polling) или опрос.

Опрос

Опрос работает следующим образом:

  1. Клиент запрашивает у сервера страницу.
  2. Сервер в ответ отправляет запрашиваемый ресурс.
  3. Клиент, с определенной переодичностью делает AJAX-запросы на сервер.
  4. Если данные на сервере изменились, то сервер отправляет их клиенту.

Такой метод хорошо работает, но имеет несколько недостатков. Во-первых имеет место большой объём лишнего трафика на сервере. Во-вторых возможны задержки между появлением данных на сервере и передачей их клиенту.

Длинный опрос

Немного более эффективной техникой является длинный опрос (long polling). Механизм работы следующий:

  1. При отправке AJAX-запроса мы можем указать свойство timeout определяет количество миллисекунд, которое запрос будет выполняться, до того, как будет автоматически прерван.
  2. Как только данные на сервере обновятся, сервер передаст их клиенту и браузер отправит новый запрос с таймаутом. Новый запрос браузер отправит также если время ожидания завершится.

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

Веб-сокеты предоставляют намного более эффективный и простой способ общения клиента и сервера. Соединение устанавливается один раз и остается открытым, до тех пор пока одна из сторон не оборвет соединение.

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

Регистрация

Для регистрации введите актуальный адрес электронной почты. На него вам придет письмо для активации аккаунта.

email
more_horiz

Вход

email
more_horiz
или

Сброс пароля

Для сброса пароля введите адрес электронной почты указанный при регистрации. Вам на почту придет письмо с инструкцией.