EMZETT.
Увійти

Polling, long polling, SSE і WebSocket: порівняння реального часу

Коротко: Для живих даних у вебі є polling (регулярне опитування), long polling (утримання відповіді), server-sent events (сервер надсилає події) і WebSockets (двостороннє з’єднання).

Докладніше: HTTP класично працює як запитання і відповідь: клієнт питає, сервер відповідає. Для чатів, сповіщень, живих результатів чи дашбордів ви хочете, щоб сервер сам надсилав новини. Є чотири поширені техніки.

Подробиці

Polling (short polling)

Клієнт регулярно (кожні 5 секунд) питає: «Чи є щось нове?».

setInterval(async () => {
  const r = await fetch('/api/news');
  // ...
}, 5000);

Просто, але більшість запитів порожні, а нова інформація приходить із запізненням.

Див. також: WebSockets, Server-sent events і реальний час, вебхуки, HTTP keep-alive