最佳答案
我有两个组件,它们通过 TCP/IP 进行通信。组件 A 充当服务器/侦听器,组件 B 是客户端。两人应该尽快沟通。在任何时候都只能有一个连接(尽管这个问题暂且不提)。我公司的一位高级开发人员说,我需要使用两个组件之间的应用程序级心跳来确保连接保持打开状态。
我认为 TCP/IP 连接是开放的,但是我读过一些博客/站点说,在这些应用程序之间进行心跳跳动是非常标准的做法。
我知道组件 A 的心跳组件 B 的部分原因,所以它可以通知支持,如果有与组件 B 的通信问题(要么链接被关闭或组件 B 没有运行)。还有其他原因需要心跳吗?比如确保管道里经常有东西保持畅通?
组件 A 当前每20秒心跳一次组件 B,如果在120秒内没有从组件 B 收到任何回复,则关闭连接。然后,它继续侦听连接,假设组件 B 在链接中断时会周期性地尝试重新连接。这个很成功。
重申我的问题: 保持 TCP/IP 连接活跃是否需要心跳?