✍️ Server-Sent Events (SSE)
Server-Sent Events (SSE) — технология, при которой сервер отправляет клиенту обновления по мере их появления.
Клиенту не нужно отправлять повторяющиеся запросы
Соединение одностороннее: от сервера к клиенту
◾️Для поддержания соединения открытым, сервер может отправлять пустые события с определенной периодичностью, чтобы не закрылось соединение браузером из-за таймаута.
◾️Относится к асинхронным методам, т.к. позволяет получать данные от сервера, как только они становятся доступны, без задержек и постоянных перезапросов.
Как работает
😈клиент делает HTTP-запрос на сервер и остается подключенным к серверу
😈сервер открывает однонаправленный поток данных, отправляет обновления на клиент в формате текстовых событий
😈онлайн клиент получает данные по мере их поступления с сервера
Где применяется
Когда сервер должен регулярно обновлять информацию на веб-странице.
Например:
🔘в системах мониторинга (получение обновлений о состоянии системы)
🔘чатах (получение новых сообщений)
🔘торговых приложениях (обновления котировок)
🔘лентах новостей и социальных сетях
🔘push-уведомления из веб-приложения
Пример работы SSE для мониторинга системы
💙 Сервер отслеживает метрики системы (загрузка CPU, ошибки, статус сервера)
💙 Клиент подключается через SSE и получает обновления об изменении состояния системы в реальном времени
💙 Как только сервер получает новые данные, он отправляет их клиенту
Плюсы и минусы
➕интегрируется через стандартные HTTP-запросы
➕только сервер инициирует обновления,не нужно постоянно отправлять запросы от клиента на сервер (polling). Это снижает нагрузку
➕автоматически восстанавливает соединение при его потере
➖однонаправленность — только от сервера к клиенту
➖работает только через HTTP, менее гибко по сравнению с WebSocket
➖может не поддерживаться старыми браузерами (работает только с UTF-8)
➖нет возможности передать свои заголовки в запрос
📎 Материалы
1. Асинхронный веб: WebSocket, Server-Sent Events, Long Polling и Short Polling
2. Подписки на GraphQL: Почему мы используем SSE/Fetch вместо Websockets
3. Вам посылка, или Как мы доставляем сообщения с сервера на клиент в реальном времени
4. Server-Sent Events: пример использования
5. Потоковое обновление с событиями, отправленными сервером
6. Server Sent Events
7. WebSockets vs SSE: особенности и сценарии использования
📚Книги
1. Сергей Константинов. API
2. Джей Гивакс. Паттерны проектирования API
3. Арно Лоре. Проектирование веб-API
#api #интеграции
➿➿➿➿➿➿➿➿➿➿
🧑🎓 Больше полезного в базе знаний по системному анализу
Post #516
12.5K
- 🔥 29
- ❤ 11
- 👍 11