WebSockets - двусторонняя связь

Прежде чем приступить к изучению веб-сокетов, необходимо взглянуть на существующие методы, которые используются для duplex communicationмежду сервером и клиентом. Они следующие -

  • Polling
  • Длинный опрос
  • Streaming
  • Постбек и AJAX
  • HTML5

Опрос

Опрос можно определить как метод, который выполняет периодические запросы независимо от данных, имеющихся в передаче. Периодические запросы отправляются синхронно. Клиент делает периодический запрос к Серверу через указанный интервал времени. Ответ сервера включает в себя доступные данные или какое-то предупреждающее сообщение.

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

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

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

Потоковое

Считается лучшим вариантом для передачи данных в реальном времени. Сервер поддерживает соединение с клиентом открытым и активным до тех пор, пока не будут получены требуемые данные. В этом случае соединение называется открытым на неопределенный срок. Потоковая передача включает заголовки HTTP, которые увеличивают размер файла, увеличивая задержку. Это можно считать серьезным недостатком.

AJAX

AJAX основан на Javascript XmlHttpRequestОбъект. Это сокращенная форма асинхронного Javascript и XML.XmlHttpRequestObject позволяет выполнять Javascript без перезагрузки всей веб-страницы. AJAX отправляет и получает только часть веб-страницы.

Фрагмент кода вызова AJAX с XmlHttpRequest Объект выглядит следующим образом -

var xhttp;

if (window.XMLHttpRequest) {
   xhttp = new XMLHttpRequest();
} else {
   // code for IE6, IE5
   xhttp = new ActiveXObject("Microsoft.XMLHTTP");
}

Основные недостатки AJAX по сравнению с Web Sockets являются -

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

HTML5

HTML5 - это надежная платформа для разработки и проектирования веб-приложений. Основные столпы включаютMark-up, CSS3 и Javascript API вместе.

На следующей диаграмме показаны компоненты HTML5 -

Приведенный ниже фрагмент кода описывает объявление HTML5 и его тип документа.

<!DOCTYPE html>

Зачем нам нужны веб-сокеты?

Интернет задумывался как набор страниц на языке гипертекстовой разметки (HTML), связывающих друг друга, чтобы сформировать концептуальную сеть информации. С течением времени количество статических ресурсов увеличивалось, они становились более богатыми, например изображениями, и стали частью веб-структуры.

Развитые серверные технологии, которые позволили создать динамические серверные страницы - страницы, содержимое которых было создано на основе запроса.

Вскоре потребность иметь больше динамических веб-страниц привело к доступности языка динамической гипертекстовой разметки (DHTML). Все благодаря JavaScript. В последующие годы мы увиделиcross frame communication в попытке избежать перезагрузки страницы с последующим HTTP Polling в рамках.

Однако ни одно из этих решений не предлагало действительно стандартизированного кросс-браузерного решения для двунаправленной связи в реальном времени между сервером и клиентом.

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