perl - 服务器如何知道关闭网站选项卡时关闭websocket的连接

标签 perl websocket webclient

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

最佳答案

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

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

关于perl - 服务器如何知道关闭网站选项卡时关闭websocket的连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50419153/

相关文章:

perl - 在本地文件上使用 perl WWW::Mechanize

perl - 使用 Perl here-document 导致 "Can' t 在 EOF 之前的任何位置找到字符串终止符 "EOF"”

javascript - 如何在 webworkers 中访问 websockets?

c# - Windows 8 的 WebClient 替代品?

C# - Webclient 发布数据问题

perl - 使用 Perl Par Packer 创建带有自定义图标的 exe

node.js - 将实时组件集成到 REST 后端

c - 当客户端尝试重新建立连接时,g_io_channel_unix_new() 调用会导致 SIGSEGV

c# - 如何使用 .NET 读取 ASP.NET 内部服务器错误描述?

regex - 从正则表达式匹配中捕获单词