perl - 关闭网站选项卡时服务器如何知道关闭websocket的连接
问题描述
我创建了一个 websocket(使用 perl Net::WebSocket::Server 但我认为没关系)。我的问题是,当我关闭网站选项卡(不一定是整个浏览器)时,服务器将断开特定的套接字(我的断开事件被调用)。服务器如何设法知道这一点?我找不到直接的详细描述。
解决方案
如果浏览器关闭套接字的一端(通过关闭显式关闭,或者因为进程退出而隐式关闭),套接字连接另一端的服务器将被通知套接字现在已关闭。这只是 TCP 工作原理的一部分。即使消息丢失并且服务器认为套接字仍然打开,当它尝试发送数据时,它最终会发现另一端没有确认数据包并断开连接。
在浏览器选项卡的情况下,可以合理地假设浏览器将清理/关闭与正在关闭的选项卡关联的任何资源。
推荐阅读
- python - pytest 找不到 pip 模块
- lua - 在 Lua 中,如何从作为参数传递给我的函数的函数中获取函数的参数?
- react-admin - 在 react-admin 的登录页面添加“忘记密码”链接
- r - 如何使用主函数检索 R 中每个主成分的观察分数
- php - php循环中数据库的样式输出
- ios - 'pod init' 返回:不允许操作 - getcwd (Errno::EPERM)
- python - 如何在多个条件下使用 np.where
- node.js - Next.js + Graphql 解耦架构中如何转发用户会话?
- typescript - 使用类验证器验证字符串文字类型
- django - send_mail() 因 privateemail.com 而失败