Javascript 如何收听室内活动

Javascript 如何收听室内活动,javascript,node.js,sockets,socket.io,Javascript,Node.js,Sockets,Socket.io,因此,为了澄清,我知道客户端应该向服务器发送一条消息,比如“加入房间”,以便进行处理,这很好,我知道我可以对“离开房间”执行同样的操作 我想要的是亲自倾听事件,因为如果客户端断开连接,我需要向受影响的房间发送消息,就像当客户端断开连接时,他们会自动离开所有房间一样 所以我想要像这样的东西 socket.on('join' function() { // send message }); socket.on('leave' function() { // send message }); 因此

因此,为了澄清,我知道客户端应该向服务器发送一条消息,比如“加入房间”,以便进行处理,这很好,我知道我可以对“离开房间”执行同样的操作

我想要的是亲自倾听事件,因为如果客户端断开连接,我需要向受影响的房间发送消息,就像当客户端断开连接时,他们会自动离开所有房间一样

所以我想要像这样的东西

socket.on('join' function() {
// send message
});

socket.on('leave' function() {
// send message
});
因此,如果用户关闭窗口(这会断开客户端的连接,然后触发所有要离开的房间),我可以发送一条消息

我正在使用最新的socket.io和redis适配器

还有,

列出特定套接字所在的所有房间的最有效方法是什么,因为从技术上讲,我认为断开连接事件应该包含客户机id,这样我就可以手动执行此操作

关键是清晰和稳定,尽管我对其他方法持开放态度(仍然必须使用socket.io)


谢谢

如果我正确理解了您的主要问题:您想听听加入和离开实现本身空间的事件,以便
socket.join(room\u id)
应该触发您想要收听的事件

问题是,医生们没有提到任何倾听事件的方式。事实上,当你加入一个房间时,你没有表现出任何触发事件的迹象。我的猜测是,你必须实施
加入/离开房间
系统来处理这个问题

至于子问题,socket对象包含一个名为
rooms
的数组,因此
socket.rooms
包含套接字当前所在的所有房间

这可能就是你想要的:

socket.on('disconnect',function()){
对于(插座中的var房间){
//在客户关闭连接并离开房间之前做一些事情
}

});

非常感谢您对子问题的回答。我想我需要进一步调查事件系统。