我们的一个分布式应用程序正在使用心跳来检测对等方的断开连接(例如,LAN线断开等)。 心脏跳动是必要的吗?
答案 0 :(得分:1)
是。 TCP只会显示物理连接仍然存在(即,套接字未被路由器或操作系统拆除)。但是会告诉没有 应用程序可用性。如果管道另一端的进程处于while(1);
循环中且未处理您的请求,则表示您并未实际连接到该请求。
答案 1 :(得分:1)
也许,如果你没心跳,你会怎么做?
如果你无法恢复那里 心跳加速没有意义。
如果您使用从服务器到客户端的回叫,您需要一种方法让客户端可以要求服务器重新发送所有丢失的回叫,这并不容易。
此外,如果您没有心跳,这并不意味着以后会收到消息,因为可能存在各种网络延迟,重新发送消息是否安全?
心脏跳动很容易 硬心的是当心脏做什么的 不打败!
答案 2 :(得分:0)
这是一个很好的方式,知道你仍然在“应用程序级”连接到另一端,应用程序仍然可以说话。否则你必须假设“另一端”没有“说”,这很难与“另一端实际上在35秒前失去网络连接”分开。