我有两个组件,它们通过TCP/IP进行通信。组件A充当服务器/监听器,组件B是客户端。这两个组件应该尽快进行通信。任何时候都只能有一个连接(尽管这与本问题无关)。我公司的一位高级开发人员说我需要在两个组件之间使用应用程序级心跳来确保连接保持打开状态。
我认为使用TCP/IP可以使连接保持打开状态,但我读过许多博客和网站,它们都说心跳在这些应用程序之间相当普遍。
我知道A组件向B组件发送心跳的部分原因是,如果B组件存在通信问题(链接已断开或B组件未运行),它可以通知支持部门。还有其他必须要使用心跳吗?例如,确保经常有东西“在管道中”以保持其处于打开状态吗?
组件A目前每20秒向组件B发送心跳,如果120秒内没有收到来自组件B的回复,则关闭连接。然后,在假定组件B将定期尝试重新连接以恢复连接的情况下,它会继续监听连接。这很成功。
再次强调我的问题:是否需要使用心跳来保持TCP/IP连接的活动状态?