Назад к вопросам
Middle
6
Расскажи про SSE (Server-Sent Events) и сравни с WebSocket и polling
Компании, где спрашивали
Мыс
Ответ от нейросети
sobes.tech AI
Server-Sent Events (SSE) — это технология, позволяющая серверу отправлять клиенту поток обновлений через однонаправленное соединение HTTP. Клиент открывает соединение с сервером и слушает события, которые сервер шлёт в режиме реального времени.
Особенности SSE:
- Однонаправленное: сервер → клиент.
- Использует стандартный HTTP, легко проходит через прокси и фаерволы.
- Автоматически восстанавливает соединение при разрыве.
- Формат сообщений простой, текстовый (обычно в формате "event: ...\ndata: ...\n\n").
Сравнение с WebSocket:
- WebSocket — двунаправленный протокол, позволяет клиенту и серверу обмениваться сообщениями в реальном времени.
- WebSocket эффективнее для интерактивных приложений с частым обменом данными в обе стороны.
- SSE проще в реализации для сценариев, где сервер просто шлёт обновления (например, ленты новостей, уведомления).
Сравнение с Polling:
- Polling — клиент периодически делает запросы к серверу, чтобы проверить наличие новых данных.
- SSE более эффективен, так как сервер отправляет данные сразу, без задержек и лишних запросов.
- Polling создаёт дополнительную нагрузку на сервер и сеть из-за частых запросов.
Пример использования SSE на клиенте:
const evtSource = new EventSource('/events');
evtSource.onmessage = function(event) {
console.log('Новое сообщение:', event.data);
};