如何通过离开页面来处理socket.io断开连接?

时间:2014-12-29 22:00:11

标签: javascript node.js sockets websocket socket.io

我有socket.io application node.js并且想知道只有关闭浏览器窗口才能回复客户端的可能性。反正知道这已经完成了吗?什么样的信号可以发送到服务器?

如果我没有办法告诉特定客户是否已经断开了我还能做什么?

3 个答案:

答案 0 :(得分:4)

当客户关闭浏览器窗口时,socket.io会触发一个特殊的“断开连接”。事件。

假设您在节点服务器文件中需要socket.io

var io = require('socket.io');

然后你可以听到“断开连接”的声音。每个套接字触发的事件:

io.on('connection', function(socket){
  console.log('a user connected');
  socket.on('disconnect', function(){
    console.log('user disconnected');
  });
});

注意 - 此处的套接字由:

给出
io.on('connection', function(socket){
  console.log('a user connected');
});

来源:http://socket.io/get-started/chat/

答案 1 :(得分:3)

  

我有一个带有node.js的socket.io应用程序,并且想知道只有关闭浏览器窗口才能响应客户端的可能性。反正知道这已经完成了吗?什么样的信号可以发送到服务器?

您在node.js端的套接字将收到" disconnect"浏览器关闭连接时的事件,然后您可以对此作出反应。

答案 2 :(得分:1)

您希望在卸载触发器中通过套接字触发消息。

<body onunload="sendBrowserClosedMessageToServer()">

或者你称之为钩子。