我使用socket.io> 1.0
对聊天室进行编码在我的聊天室应用程序中,我试着了解谁刚刚断开连接。为此,我需要访问socket的id。 触发断开连接事件后,
socket.on('disconnect', function(socket){
//need to learn socket's id here
}
我无法检查刚离开的人。我试过socket.id但是这给了一个错误。我认为套接字对象已删除,因为我无法访问它的任何部分。
我不希望存储所有套接字ID并在剩下一个时循环遍历所有套接字ID。 然后我尝试使用会话中间件在会话中保存套接字的id,但是他们将数据附加到套接字对象,因此使用它是没有意义的(所有数据在断开连接时都消失了)或者他们使用REST调用但我没有收到任何REST调用当某人(插座)离开聊天室时。
非常感谢
答案 0 :(得分:2)
试试这个:
io.sockets.on('connection', function(socket){
console.log("Connected Socket = " + socket.id)
socket.on('disconnect', function(){
console.log("Disconnected Socket = " + socket.id);
}
}
如果有效,请告诉我。
EDIT1:从逻辑上讲,基本上你所做的事情是错误的。与连接关联的回调函数在某人连接后执行,因此在事件循环中丢失或解除引用。
我的回答将在事件循环中引用您的回调,如果再次引用该连接,您就能够识别调用该方法的线程或连接。