使用socket.io发出本地事件

时间:2013-12-09 07:08:31

标签: node.js socket.io

我在服务器端(和客户端)使用socket.io。

我想要做的是在断开连接时触发事件。但它似乎没有在当地获得。

在节点服务器中我有:

sock.on('chat:leave', function(user){
     //delete user from chat room list
});

sock.on('disconnect', function(){
    var user = sock.user;
    sock.emit('chat:leave', user);
});

但是这不起作用 - 当我关闭浏览器窗口时会断开连接,但是chat:leave处理程序发出的disconnect未被sock.on('chat:leave')处理程序拾取

1 个答案:

答案 0 :(得分:2)

我认为您需要重写代码(AFAIK,您尝试做的事情是不可能的):

var userLeft = function(user) {
  // delete user from chat room list
};
sock.on('chat:leave', userLeft);
sock.on('disconnect', function() {
  userLeft(sock.user);
});