我有两个通过TCP / IP进行通信的组件。组件A充当服务器/侦听器,而组件B充当客户端。两者应尽快沟通。任何时候都只能有一个连接(尽管此问题除外)。我公司的一位高级开发人员表示,我需要在两个组件之间使用应用程序级心跳,以确保连接保持打开状态。
我以为使用TCP / IP可以保持连接打开,但是我读过许多博客/站点,这是在这些应用程序之间进行心跳检测的非常标准的做法。
我知道组件A心跳组件B的部分原因是,它可以在组件B存在通信问题(链接断开或组件B未运行)时通知支持。是否由于其他原因需要心跳?如要确保经常有“管道中的东西”保持打开状态?
当前,组件A每20秒对组件B进行一次心跳检测,如果在120秒内没有收到来自组件B的任何反馈,则关闭连接。然后假定组件B在链路断开的情况下会定期尝试重新连接,它会继续侦听连接。这可以成功工作。
重申我的问题:是否必须保持心跳才能保持TCP / IP连接的活动?