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