我一直在使用 cocoaasyncsocket 作为使用 asyncsocket 的 Windows .net 服务器的客户端。我正在使用 ProtocolBuffers 对消息进行编码。这些共同构成了一套很棒的工具。
但是最近我注意到,如果我让客户端长时间连接到服务器 - 好几个小时 - 当我尝试请求数据时,消息似乎已发送但从未到达服务器。我将此称为“无声”断开连接,因为如果出现网络问题,我没有收到通常的断开连接。
我正在处理以下方法以进行调试,但没有一个被调用:
- (NSTimeInterval)onSocket:(AsyncSocket *)sock
shouldTimeoutReadWithTag:(long)tag
elapsed:(NSTimeInterval)elapsed
bytesDone:(CFIndex)length {
- (void)onSocket:(AsyncSocket *)sock willDisconnectWithError:(NSError *)err
- (void)onSocketDidDisconnect:(AsyncSocket *)sock
没有任何通知,我发现调试起来很棘手。服务器同样没有显示任何断开连接。
谁能指出我如何进一步分析这个方向?
非常感谢。