Sobes.tech
Назад к вопросам
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);
};