Socket.io pozwala używać pulsu do "sprawdzania kondycji połączeń Socket.IO". Czym dokładnie są bicie serca i dlaczego powinienem lub nie powinienem ich używać?Zaleta/wada korzystania z bitu socketio
Odpowiedz
Bicie serca to mała wiadomość wysyłana z klienta do serwera (lub z serwera do klienta iz powrotem do serwera) w okresowych odstępach czasu w celu potwierdzenia, że klient jest nadal aktywny.
Na przykład, jeśli masz aplikację Node.js obsługującą pokój rozmów, a użytkownik nic nie mówi przez wiele minut, nie ma sposobu, aby stwierdzić, czy nadal są podłączeni. Przesyłając sygnał dźwiękowy w ustalonym odstępie czasu (powiedzmy co 15 sekund), klient informuje serwer, że nadal tam jest. Jeśli to był np. 20 sekund od momentu, gdy serwer uzyskał bicie serca od klienta, prawdopodobnie został rozłączony.
Jest to konieczne, ponieważ: cannot be guaranteed a clean connection termination over TCP - jeśli klient ulegnie awarii, lub coś innego się stanie, nie otrzymasz pakietów terminacji od klienta, a serwer nie będzie wiedział, że klient został rozłączony. Co więcej, Socket.IO obsługuje różne inne mechanizmy (inne niż gniazda TCP) do przesyłania danych iw takich przypadkach klient nie będzie (lub nie może) wysyłać wiadomości o zakończeniu do serwera.
Domyślnie klient Socket.IO wyśle bicie serca do serwera co 15 sekund (pulsu interwał), a serwer nie słyszał od klienta w ciągu 20 sekund (timeout tętno) go uzna klienta za odłączony.
Nie mogę myśleć o wielu typowych przypadkach użycia, w których prawdopodobnie nie chcesz używać pulsu.
Niesamowite pytanie. –