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