Что такое Long-Polling, Websockets, Server-Sent Events (SSE) и Comet?
Существуют различные способы взаимодействия клиентской стороны со стороной сервера в режиме реального времени, т. Е. Длительный опрос, веб-сокеты, отправленные сервером события (SSE) и Comet. Это объясняется следующим образом.
1. Длительный опрос:
Это технология, при которой клиент запрашивает информацию с сервера, не ожидая немедленного ответа, или в основном включает в себя выполнение HTTP-запроса к серверу с последующим удержанием соединения открытым, чтобы сервер мог ответить позже. При длительном опросе сервер допускает примерно 6 параллельных подключений из браузера.
Балансировка нагрузки в этом случае проще по сравнению с другими способами. Длинный опрос - это самый старый способ, поэтому он поддерживается всеми веб-браузерами. Хотя из-за меньшего количества обновлений в нем не предусмотрена обработка повторного подключения. Длинный опрос намного более интенсивен на сервере, но более широко применяется в браузерах.
2. Веб-сокеты:
WebSocket - это протокол компьютерной связи, который позволяет нам использовать полнодуплексные каналы связи по единому протоколу управления передачей (TCP). Протокол WebSocket обеспечивает взаимодействие между веб-браузером и веб-сервером с небольшими накладными расходами, обеспечивая передачу данных в реальном времени с сервера и на сервер. Это делается путем определения стандартного способа для сервера отправлять информацию клиенту без предварительного запроса клиента, а затем позволяя передавать сообщения туда и обратно, сохраняя при этом соединение открытым. Таким образом, между клиентом и сервером может происходить двусторонний диалог без каких-либо проблем.
Веб-сокеты широко используются в веб-браузерах, таких как Google Chrome, Opera, Edge, Firefox, Safari и т.д. Он имеет сложную технику балансировки нагрузки и прокси. Он также поддерживает обнаружение сброшенного клиента, которое отсутствовало при длительном опросе, но также не обеспечивает обработку повторного подключения.
3. События, отправленные сервером (SSE):
Это технология, позволяющая браузеру получать автоматические обновления с любого сервера через HTTP-соединение. Эта технология была предложена WHATWG (рабочая группа по технологии веб-гипертекстовых приложений) и впервые была реализована веб-браузером Opera в 2006 году. Это стандарт, который описывает, как серверы инициализируют передачу данных с клиентом после установки начального клиентского соединения. вверх. Они отправляют клиенту обновления сообщений или непрерывные обновления, чтобы улучшить кроссбраузерность потоковой передачи через API-интерфейс javascript, называемый EventSource.
SSE поддерживается несколькими браузерами, такими как Mozilla, Chrome и Safari. Internet Explorer и Edge по-прежнему не поддерживают эту технику. Он также поддерживает до 6 параллельных подключений из браузера. Он поддерживает простую балансировку нагрузки, а также обеспечивает обработку повторного подключения, поддерживаемую EventSource.
4. Комета:
Это модель веб-приложения, в которой длительный запрос HTTPS позволяет серверу отправлять данные на клиент-сервер, то есть в веб-браузер, без явного запроса веб-браузером какого-либо обновления данных. Comet известна, как и многие другие имена, такие как Ajax Push, Reverse Ajax и т. Д. Основная идея разработки Comet заключалась в том, чтобы сделать единичный и регулярный запрос HTTPS и зависеть от бесконечного ответа от сервера.
Веб-сервер принимает новый входящий запрос и запускает новый ответ с текущими данными, но сервер не завершает ответ, и, следовательно, браузер сохраняет соединение открытым и ожидает новых данных, всякий раз, когда поступают новые данные, сервер будет записывать это в поток ответов. Сервер отправляет уникальную строку в конце этого конкретного обновления. Например. «ThisCometMessageEnded».
Comet снимает ограничения постраничной веб-модели и опроса, предлагая двустороннюю связь.
Конкретные методы реализации Comet делятся на две основные категории: потоковая передача и длительный опрос.
- I. Потоковая передача -
Любое приложение, использующее потоковую передачу Comet, открывает одно постоянное соединение клиентского браузера с сервером для всех событий Comet. Методы потоковой передачи Comet:(а) Скрытый iframe (б) XMLHttpRequest
- II. Длинный опрос -
Конкретные технологии для выполнения длительного опроса включают:(a) Длинный опрос XMLHttpRequest (b) Длинный опрос тега сценария