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