Short Polling, Long Polling i SSE
Musisz przesłać dane z serwera do klienta. Oto trzy sposoby, aby to zrobić.
Short Polling
Wyobraź sobie klienta w restauracji. Klient co 5 sekund pyta kelnera, czy jedzenie jest gotowe.
Klient powtarza to pytanie w regularnych odstępach czasu.
Problemy:
- Zbyt wiele żądań trafia na Twój serwer.
- Aktualizacje są opóźnione. Jeśli jedzenie będzie gotowe sekundę po pytaniu, klient będzie musiał czekać kolejne 4 sekundy, aby zapytać ponownie.
- Marnuje to zasoby sieciowe.
Long Polling
Klient mówi do kelnera: „Daj mi znać, kiedy moje jedzenie będzie gotowe”.
Kelner zostaje przy stoliku i czeka. Jeśli kucharz skończy przygotowywać jedzenie, kelner natychmiast informuje o tym klienta. Jeśli przygotowanie jedzenia zajmie zbyt dużo czasu, kelner informuje klienta, że danie nie jest jeszcze gotowe.
Problemy:
- Połączenia pozostają otwarte przez długi czas.
- Możesz napotkać przekroczenia czasu połączenia (timeouts).
- Trudno jest zarządzać wieloma klientami jednocześnie.
Server Sent Events (SSE)
Wyobraź sobie kursy akcji na żywo. Klient otwiera połączenie tylko raz. Serwer utrzymuje to połączenie jako otwarte. Za każdym razem, gdy cena ulega zmianie, serwer wysyła aktualizację do klienta.
Kluczowe fakty:
- Jest to komunikacja jednostronna.
- Dane płyną wyłącznie z serwera do klienta.
- Klient nie wysyła wiadomości zwrotnych przez to połączenie.
Źródło: https://dev.to/guruharish_b/short-polling-long-polling-and-sse-20o5