TCP / IP üzerinden iletişim kuran iki bileşenim var. Bileşen A, bir sunucu / dinleyici görevi görür ve Bileşen B, istemcidir. İkili olabildiğince çabuk iletişim kurmalıdır. Herhangi bir zamanda yalnızca bir bağlantı olabilir (bu sorunun yanı sıra). Şirketimdeki kıdemli bir geliştirici, bağlantının açık kalmasını sağlamak için iki bileşen arasında uygulama düzeyinde sinyal kullanmam gerektiğini söyledi.
TCP / IP ile bağlantının açık kaldığını düşündüm, ancak bu uygulamalar arasında kalp atışı atmanın oldukça standart bir uygulama olduğunu söyleyen birkaç blog / site okudum.
Bileşen A'nın kalp atışı bileşen B'nin nedeninin bir kısmının, bileşen B ile iletişim sorunları varsa (bağlantı çalışmıyor veya bileşen B çalışmıyor) destek konusunda bilgi verebilmesi olduğunu biliyorum. Başka bir nedenle kalp atışlarına ihtiyaç var mı? Sık sık "boruda" onu açık tutmak için bir şey olmasını sağlamak gibi?
Bileşen A şu anda bileşen B bileşenini her 20 saniyede bir sinyal verir ve 120 saniye içinde bileşen B'den hiçbir şey geri alınmazsa bağlantıyı kapatır. Ardından, bağlantı koptuğunda bileşen B'nin periyodik olarak yeniden bağlanmayı deneyeceği varsayımı altında bağlantıları dinlemeye devam eder. Bu başarıyla çalışıyor.
Sorumu tekrarlamak gerekirse: TCP / IP bağlantısını canlı tutmak için sinyal gerekli midir?