Разница между отправленными сервером событиями и веб-сокетами в HTML5
Веб-сокеты
WebSockets — это сложная технология, которая обеспечивает интерактивную двустороннюю связь в реальном времени между клиентским браузером и сервером. Это достигается путем установления стандартного метода передачи сервером информации клиенту без предварительного получения приглашения от клиента, а затем разрешения передачи сообщений между обоими, пока соединение остается открытым. При таком подходе клиент и, следовательно, сервер могут вести двусторонний диалог без проблем. Это технология компьютерной связи, которая позволяет нам иметь полнодуплексные каналы связи по одному TCP-соединению.
Соединения WebSocket могут отправлять данные в браузер и получать данные из браузера. Приложение для чата может быть примером базового приложения, использующего WebSockets. Он широко поддерживается веб-браузерами, такими как Google Chrome, Microsoft Edge, Opera, Firefox, Safari и т. д.
Преимущества:
- WebSockets имеет возможность передавать как двоичные данные, так и UTF-8.
- Веб-сокеты являются двунаправленными (что позволяет обмениваться данными между клиентом и, следовательно, сервером).
- Веб-сокеты способны обнаруживать разрыв клиентского соединения.
- Совместимость с поддержкой браузеров больше связана с WebSockets.
- Веб-сокеты универсальны по своей природе из-за их способности обрабатывать сложные проекты.
Недостатки:
- WebSockets более сложны и требовательны к настройке. Потому что это требует тонны предварительной работы.
- Браузеры старше 2011 года не поддерживают соединения WebSocket.
- Когда соединения прерываются, веб-сокеты не восстанавливаются автоматически — это нужно делать вручную, и это одна из причин, по которой существует множество клиентских библиотек.
События, отправленные сервером
Server-Sent Events (SSE) — это технология, которая позволяет браузеру (клиенту) получать автоматические обновления, такие как текстовые данные о событиях, с сервера через HTTP-соединение. Это спецификация, объясняющая, как серверы инициируют передачу данных клиентам после установления клиентского соединения. Они используют JavaScript API под названием EventSource для отправки обновлений сообщений или непрерывных обновлений клиенту для улучшения потоковой передачи в разных браузерах. Впервые он был реализован в веб-браузере Opera 9.
SSE обычно используется для отправки обновлений сообщений или непрерывных потоков данных клиенту браузера. Таким образом, событие, отправленное сервером, — это когда обновления передаются (а не извлекаются или запрашиваются) с сервера в браузер.
Преимущества:
- Браузеры, поддерживаемые SSE, — это Mozilla, Chrome и Safari.
- SSE поставляются с автоматическим повторным подключением, идентификаторами событий и возможностью отправки произвольных событий.
- Передается по простому HTTP вместо пользовательского протокола.
- SSE наиболее ценны в таких случаях, как обновление статусов, push-уведомления, информационные бюллетени и новостные ленты, поскольку они поддерживают однонаправленную связь.
- По сравнению с WebSockets SSE быстрее и удобнее в настройке.
Недостатки:
- SSE ограничен UTF-8 и не поддерживает двунаправленную передачу данных.
- Поддержка браузера в SSE низкая.
- SSE имеет ограничения в отношении максимального количества открытых подключений. Это может быть особенно болезненно при открытии различных вкладок, так как ограничение для каждого браузера установлено на очень низкое число (6).
Разница между WebSockets и событиями, отправленными сервером:
Веб-сокеты | События, отправленные сервером |
---|---|
|
|
|
|
|
|
|
|
|
|