我使用node.js和WebSocket-Node构建一个简单的聊天websocket服务器。
客户端是Android应用。
服务器必须以两种方式与客户通信:
但是我需要解决一些问题..
当客户端连接到服务器并且互联网连接断开时,服务器不会收到通知,因为客户端没有发送关闭帧..所以在10秒内,服务器认为连接仍然存在
如果在10秒内服务器通过套接字发送消息,则消息永远不会到达客户端。
我需要检测连接何时关闭,或者在连接关闭时使用GCM发送消息的其他方式。
有办法吗?
答案 0 :(得分:1)
从服务器端,不干净的断开连接(没有发送断开连接的消息)与非常慢的连接无法区分。
你需要做的是有某种心跳。 WebSockets在协议级别上有ping。如果你的库暴露了这个,那么将ping设置为你愿意接受的延迟,并在失败后添加一个处理程序/在超时后没有完成。
答案 1 :(得分:1)
回答我自己的问题,因为:这是不可能的,我找到了另一种更好的办法来处理 我的具体案例 。