基本上,如果我有一个使用websockets的聊天应用程序,我希望能够向服务器发送一条消息,说我正在断开连接。我已经尝试绑定到onbeforeunload,但似乎只能显示一条消息。
有更好的策略吗?如果没有,似乎我必须从服务器端执行某种ping/超时策略。
谢谢。
WebSockets是在TCP之上实现的,在TCP世界中,不同的连接丢失是预期的场景。
在网络安全方面,你的服务器端永远不应该依赖于客户端的"善意",而应该始终是独立的,并期望任何和更多的断开连接的场景。
考虑到这一点,你必须预料到意外的连接中断(GPRS/EDGE/3G/4G连接不良或在桥下/地面,wifi下降,以太网拔掉,ISP问题,服务器网络问题,等等)。没有"bye"的断开连接实际上是最常见的断开连接,所以必须实现服务器端逻辑考虑到这一点。