关闭窗口前Socket.IO断开问题

时间:2011-08-22 16:44:06

标签: socket.io

我试图阻止客户端与服务器断开连接。因此,在用户关闭应用程序打开的窗口之前,我会这样做:

    $(window).bind("beforeunload", function() { 
       return("Close the app?");
    });

但问题是,无论用户选择离开还是停留在应用程序打开的页面上,客户端都会从服务器断开连接(停止监听),甚至在我选择一个选项之前。因此,如果用户选择留在页面上,则不会从服务器发送或接收任何内容。

为什么会这样?如何防止这种情况?

1 个答案:

答案 0 :(得分:0)

您可能无法避免此问题,因为在我知道的窗口关闭“beforeunload”之前没有其他事件触发。但是,当用户选择不退出页面时,您可以通过要求套接字在窗口关闭对话框的回调中重新连接来解决此问题。重新连接非常简单,只需:

socket.connect()

这是另一个更详细地描述重新连接的问题:

How to reconnect as soon as disconnect happens