2013-12-09 43 views
0

我在服务器端(和客户端)使用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); 
}); 

然而,这不工作 - 当我关闭浏览器窗口,但是从disconnect回调发出的chat:leave是没有得到通过拿起断开被解雇sock.on('chat:leave')处理程序。

回答

2

我认为你需要重写代码(据我所知,你正在做什么是不可能的):

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

这就是我得到了它的工作。只是想知道是否会听取当地的排放量。 – chovy