Ответ
Long Polling — клиент отправляет запрос, сервер держит соединение открытым, пока не появится новое событие. После ответа клиент сразу отправляет новый запрос.
WebSocket — двустороннее постоянное соединение. После рукопожатия (HTTP-запрос) клиент и сервер могут обмениваться данными в реальном времени без перезагрузки соединения.
SSE (Server-Sent Events) — односторонний поток от сервера к клиенту. Клиент подключается один раз, сервер отправляет события по мере их появления.
Пример SSE:
const eventSource = new EventSource('/updates');
eventSource.onmessage = (e) => {
console.log('New event:', e.data);
};
Когда использовать:
- Long Polling: если WebSocket недоступен (устаревшие браузеры)
- WebSocket: чаты, игры, двусторонняя коммуникация
- SSE: уведомления, ленты обновлений (Twitter-like)