Mam dwa komponenty, które komunikują się przez TCP / IP. Składnik A działa jako serwer / odbiornik, a składnik B jest klientem. Obaj powinni komunikować się tak szybko, jak to możliwe. W dowolnym momencie może istnieć tylko jedno połączenie (choć to nie dotyczy tego pytania). Starszy programista w mojej firmie powiedział, że muszę używać pulsów na poziomie aplikacji między dwoma komponentami, aby zapewnić, że połączenie pozostanie otwarte.
Myślałem, że połączenie pozostaje otwarte przez TCP / IP, ale przeczytałem wiele blogów / witryn, mówiąc, że jest to dość standardowa praktyka, aby pulsować między tymi aplikacjami.
Wiem, po części, dlaczego komponent A pulsuje komponentem B, więc może informować pomoc techniczną o problemach z komunikacją z komponentem B (albo łącze jest wyłączone, albo komponent B nie działa). Czy bicie serca jest potrzebne z innego powodu? Żeby zapewnić, że często coś jest „w rurze”, co spowoduje, że będzie otwarta?
Składnik A obecnie bije składnik B co 20 sekund i zamyka połączenie, jeśli nic nie zostanie odebrane ze składnika B w ciągu 120 sekund. Następnie wznawia nasłuchiwanie połączeń przy założeniu, że składnik B będzie okresowo próbował ponownie nawiązać połączenie, jeśli łącze zostanie zerwane. To działa pomyślnie.
Powtarzam moje pytanie: czy bicie serca jest niezbędne do utrzymania aktywnego połączenia TCP / IP?