Выбор между polling, long-polling и push — это баланс задержки и операционной сложности.
Разбор
- Short-poll выигрывает для «eventually»-данных. Статус CI/CD, дашборд с обновлением раз в полминуты — где опоздание на 30 секунд нормально. Главное достоинство — stateless, дружелюбность к кэшу и прохождение через любой прокси.
- Long-poll — прагматичная середина и правильный fallback, когда WebSocket заблокирован (корпоративные прокси, старая инфра). Так деградирует Socket.IO. Но при высокой частоте сообщений превращается в reconnect storm — один round-trip на сообщение при 50 msg/s убивает.
- Push выигрывает при частом низколатентном трафике — чат, live-курсоры, тикеры. Цена — операционка: sticky sessions, лимиты соединений, масштабирование fan-out. Когда НЕ push: редкие обновления у миллионов idle-клиентов — держать сокеты бессмысленно; long-poll или web-push уместнее.
Итог
Сопоставьте latency budget с операционной стоимостью и назовите сценарий fallback, когда WebSocket недоступен.