4

我正在使用一些彗星技术,包括长轮询和永远帧。我将 iframe 用于跨子域的东西。我在实现这些技术时遇到的一个问题是,当用户刷新页面或导航到另一个页面导致新请求时,彗星连接从旧页面保持打开状态。我的服务器(龙卷风)从未收到关闭连接,并且由于我有限的wireshark 能力,我看不到任何发送的TCP fin 数据包。但是,当我关闭浏览器时,此时套接字已关闭。

这些废弃的打开连接只是无缘无故地耗尽了服务器端的内存。当服务器向打开的套接字发送一些消息并且 IE 然后正确显示错误消息时,它也会导致问题:“无法从释放的脚本执行代码”。所以 IE 试图在被导航的旧窗口上执行代码。其他人如何处理这个问题?我应该使用 onbeforeunload 以某种方式关闭连接吗?

4

1 回答 1

1

您可以不时地从客户端重新启动打开的连接,如果请求在指定的时间范围内没有进入服务器,您可以安全地关闭旧连接。

于 2011-01-18T03:55:38.633 回答