socket.io检测用户已断开连接的房间

时间:2014-06-08 22:00:00

标签: node.js socket.io

我找到了一些解决方案,但它们看似日期并且无效。

如何检测用户与哪个房间断开连接?

2 个答案:

答案 0 :(得分:1)

我不知道你对房间的意思是什么,但如果它是一个聊天应用程序或类似的东西 您可以在第一次连接时在socketID对象上创建变量,如roomID。

io.sockets.on("connection",function(socket){
    socket.on("new:user",function(userDATA){
        // create variable as roomID on socket.
        socket.roomID = userDATA.roomID
    }); 

    // other events 

    socket.on("disconnect",function(data){
        var roomID = socket.roomID;
        // do what you want to do
    }); 
});

答案 1 :(得分:-1)

使用socket.io 1.0,您可以使用以下代码执行此操作:

socket.on('disconnect', function() {
  console.log(socket.rooms);
});

它将输出用户加入的房间数组。

请注意,每个套接字自动加入以此套接字ID命名的房间。所以你可能会看到像

这样的东西
[ 'hIP6r4z8Ym1n5SQUAAAA', 'my_room_name' ]

在你的控制台中。