【发布时间】:2011-10-19 19:24:22
【问题描述】:
我在 iPhone 应用程序和 NodeJS 服务器之间使用 tcp 套接字连接来实时传输数据。当客户端连接到服务器时,我在套接字上启用“保持活动”,以帮助防止“静默”断开连接。
从服务器到客户端的保持活动“ping”是单向的吗? tcp 连接的客户端是否有任何内在的智能来检测 ping 是否停止到达?
【问题讨论】:
我在 iPhone 应用程序和 NodeJS 服务器之间使用 tcp 套接字连接来实时传输数据。当客户端连接到服务器时,我在套接字上启用“保持活动”,以帮助防止“静默”断开连接。
从服务器到客户端的保持活动“ping”是单向的吗? tcp 连接的客户端是否有任何内在的智能来检测 ping 是否停止到达?
【问题讨论】:
如果您通过 socket() 在 Unix 套接字上使用 TCP keepalive,则服务器必须以 ACK 响应,否则套接字将在超时和重试后假定连接已死。
链接的 RFC 讨论了顶级保活:
【讨论】: