tah*_*sin 5 sockets session-variables node.js
我使用 socket.io >1.0 编写了一个聊天室
在我的聊天室应用程序中,我尝试了解谁刚刚断开连接。为此,我需要访问套接字的 id。触发断开连接事件后,
socket.on('disconnect', function(socket){
//need to learn socket's id here
}
Run Code Online (Sandbox Code Playgroud)
我无法检查谁刚刚离开。我尝试了 socket.id 但出现了错误。我认为套接字对象已被删除,因为我无法到达它的任何部分。
我不想存储所有套接字 ID 并在剩下一个时循环遍历所有套接字 ID。然后我尝试使用会话中间件将套接字的 id 保存在会话中,但它们要么将数据附加到套接字对象,因此使用它是没有意义的(断开连接时所有数据都会消失),要么它们使用 REST 调用,但我没有收到任何 REST 调用当某人(套接字)离开聊天室时。
多谢
小智 6
尝试这个:
io.sockets.on('connection', function(socket){
console.log("Connected Socket = " + socket.id)
socket.on('disconnect', function(){
console.log("Disconnected Socket = " + socket.id);
}
}
Run Code Online (Sandbox Code Playgroud)
让我知道这是否有效。
EDIT1:从逻辑上讲,本质上你所做的事情是错误的。与连接关联的回调函数是在有人连接后执行的,因此丢失,或者在事件循环中取消引用。
我的答案将在事件循环中保留您的回调引用,并且如果再次引用该连接,您将能够识别调用该方法的线程或连接。
| 归档时间: |
|
| 查看次数: |
2376 次 |
| 最近记录: |