Для реализации однонаправленного канала связи между сервером и клиентом. Сервер может отправлять данные клиенту в любое время после установления соединения.
Ключевые особенности и преимущества:
- Эффективность: Используется обычный HTTP-соединение, минимизируя накладные расходы по сравнению с polling.
- Простота: API server-sent events (SSE) проще в использовании, чем WebSockets для однонаправленной связи.
- Автоматическое переподключение: Браузер автоматически пытается переподключиться при обрыве соединения.
- Поддержка типов данных: Поддерживается отправка текстовых данных в формате
text/event-stream.
- Поддержка браузерами: Широко поддерживается современными браузерами.
Применение:
- Обновление новостных лент в реальном времени.
- Уведомления о событиях (например, о новых сообщениях).
- Мониторинг данных в реальном времени (например, биржевые котировки).
- Прогресс выполнения длительных задач.
Это альтернатива традиционному polling, где клиент периодически запрашивает у сервера наличие обновлений. В отличие от WebSockets, SSE однонаправленные, что упрощает их применение, когда данные передаются только от сервера к клиенту.
Пример на стороне клиента (JavaScript):
javascript
Пример формата данных на стороне сервера:
text