首页 > 解决方案 > 关闭网站选项卡时服务器如何知道关闭websocket的连接

问题描述

我创建了一个 websocket(使用 perl Net::WebSocket::Server 但我认为没关系)。我的问题是,当我关闭网站选项卡(不一定是整个浏览器)时,服务器将断开特定的套接字(我的断开事件被调用)。服务器如何设法知道这一点?我找不到直接的详细描述。

标签: perlwebsocketwebclient

解决方案


如果浏览器关闭套接字的一端(通过关闭显式关闭,或者因为进程退出而隐式关闭),套接字连接另一端的服务器将被通知套接字现在已关闭。这只是 TCP 工作原理的一部分。即使消息丢失并且服务器认为套接字仍然打开,当它尝试发送数据时,它最终会发现另一端没有确认数据包并断开连接。

在浏览器选项卡的情况下,可以合理地假设浏览器将清理/关闭与正在关闭的选项卡关联的任何资源。


推荐阅读