Server-sent events (SSE) введены в HTML5 для передачи данных с сервера клиенту в одностороннем порядке, в режиме реального времени, по HTTP-соединению. Это позволяет получать обновления от сервера без необходимости клиента постоянно отправлять запросы (полинг). Основные преимущества по сравнению с другими технологиями:
EventSource в браузере предоставляет простой интерфейс для работы с событиями и данными.Пример использования на клиенте:
javascript
На сервере ответ должен иметь MIME-тип text/event-stream и форматироваться следующим образом:
plaintext
Каждое сообщение заканчивается двумя символами перевода строки (\n\n). Каждая строка данных начинается с data: . Могут быть и другие поля, например, event: для указания типа события или id: для идентификатора сообщения.
Server-sent events являются хорошим выбором для сценариев, где сервер должен отправлять клиенту поток обновлений, таких как уведомления, ленты новостей, котировки акций или результаты долго выполняющихся процессов. Они проще в реализации, чем WebSockets, для однонаправленной связи.