Short Polling, Long Polling and SSE
Вам нужно отправить данные с сервера клиенту. Вот три способа сделать это.
Short Polling
Представьте клиента в ресторане. Клиент каждые 5 секунд спрашивает официанта, не готово ли блюдо.
Клиент повторяет этот вопрос через регулярные интервалы.
Проблемы:
- Слишком много запросов поступает на ваш сервер.
- Обновления задерживаются. Если еда готова через 1 секунду после вопроса, клиенту приходится ждать еще 4 секунды, прежде чем он спросит снова.
- Это расходует сетевые ресурсы впустую.
Long Polling
Клиент просит официанта: «Скажите мне, когда моя еда будет готова».
Официант остается у стола и ждет. Если повар заканчивает готовить, официант немедленно сообщает об этом клиенту. Если приготовление занимает слишком много времени, официант говорит клиенту, что еда еще не готова.
Проблемы:
- Соединения остаются открытыми в течение длительного времени.
- Могут возникать таймауты соединения.
- Сложно обслуживать множество клиентов одновременно.
Server Sent Events (SSE)
Представьте котировки акций в реальном времени. Клиент открывает соединение один раз. Сервер удерживает это соединение открытым. Как только цена меняется, сервер отправляет обновление клиенту.
Ключевые факты:
- Это односторонняя связь.
- Данные передаются только от сервера к клиенту.
- Клиент не отправляет сообщения обратно через это соединение.
Источник: https://dev.to/guruharish_b/short-polling-long-polling-and-sse-20o5