2011-11-27 163 views
17

是否有可能获得已断开连接的客户端的socket.id?下面的代码给我undefinedsocket.idsocket.id断开连接客户端?

Node.js的代码

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

回答

35

的回调函数io.sockets.on作为它的第二个参数是应该采取一个参数:插座。你的不是,所以第二行的套接字socket.on未定义。

并且socket.on的回调没有给出任何参数,所以该函数中的socket也是未定义的。

如果从第二个函数声明移动插座参数为第一的代码应工作:

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