我正在使用一些彗星技术,包括长轮询和永远帧。我将 iframe 用于跨子域的东西。我在实现这些技术时遇到的一个问题是,当用户刷新页面或导航到另一个页面导致新请求时,彗星连接从旧页面保持打开状态。我的服务器(龙卷风)从未收到关闭连接,并且由于我有限的wireshark 能力,我看不到任何发送的TCP fin 数据包。但是,当我关闭浏览器时,此时套接字已关闭。
这些废弃的打开连接只是无缘无故地耗尽了服务器端的内存。当服务器向打开的套接字发送一些消息并且 IE 然后正确显示错误消息时,它也会导致问题:“无法从释放的脚本执行代码”。所以 IE 试图在被导航的旧窗口上执行代码。其他人如何处理这个问题?我应该使用 onbeforeunload 以某种方式关闭连接吗?