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