我有一个客户端/服务器设置,其中客户端向服务器发送一条请求消息并返回一堆数据消息。服务器使用 ROUTER 套接字实现,客户端使用 DEALER。通信是异步的。客户端通常是 iPad/iPhone,它们通过 wifi 连接,因此连接不是 100% 可靠的。
我担心的问题是,如果客户端连接到服务器并发送数据请求,但在响应消息被送回之前,通信会中断(例如,超出 wifi 覆盖范围)。
在这种情况下,消息将在服务器端排队等待客户端重新连接。这在短时间内很好,但最终我想删除消息和连接以释放资源。
通过检查活动/超时,服务器和客户端应用程序可以识别连接已消失。客户端可以关闭套接字并以这种方式释放资源,但是如何在服务器中完成呢?