SocketIO - 浏览器刷新会导致“断开连接”吗?

时间:2016-03-19 18:11:03

标签: websocket socket.io

我正在使用SocketIO,如果用户按下刷新,我需要断开服务器端的套接字。我试过这样实现:

io.on('disconnect', function(socket) {
    socket.close();
})

disconnect事件未触发。这是预期的行为,如果有的话,是否有任何方法在刷新页面时断开套接字?

1 个答案:

答案 0 :(得分:3)

是的,正确实施后,浏览器刷新会在服务器上导致disconnect事件。我刚用一个简单的测试应用确认了这一点。

disconnect事件是socket事件,而不是io事件。因此,您需要在套接字上注册它,而不是io级别。

这是我的事件处理程序,在我的测试服务器上工作正常:

io.on('connection', function(socket) {
    socket.on('disconnect', function() {
        console.log("disconnect: ", socket.id);
    });
});

仅供参考,您不需要自己关闭插座。这将自动发生,因为每当刷新页面或导航页面时,所有webSocket / socket.io连接都会自动关闭。