我有一个脚本(我现在没有代码示例,但我使用了IO :: Async),它会连接到远程服务器上的套接字并监听。客户端通常只需等待新数据。
问题在于,如果发生网络问题并且套接字连接消失,客户端无法检测到。我尝试过使用IO::Async和IO::Socket,但是在初始连接建立后,处理句柄始终处于“连接”状态。
如果重新建立网络连接,则套接字连接自然仍然丢失,因为脚本不知道应该重新连接。
我考虑创建一种“keepAlive”,每隔X秒钟“ping”(syswrite)套接字(如果没有通过套接字传输任何新内容),以检查连接是否仍然存在。
这是正确的方法吗?或者还有其他更具创意或更干净的解决方案吗?