如何聆听室内活动

所以为了澄清,我知道客户端应该发送一个消息,比如“join房间”给服务器进行处理,这很好,我知道我也可以为“rest室”做同样的事情。

我想要的是实际听自己的事件,因为如果客户端断开连接,我需要发送消息到受影响的房间,因为当客户端断开连接,然后他们会自动离开所有房间。

所以我想要一些像

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

因此,如果用户closures窗口(断开客户端,然后触发所有房间留下),我可以发送一条消息。

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

也;

什么是最有效的方式来列出一个特定的套接字所在的房间,技术上我认为断开事件应该包含client_id,所以我可以手动做到这一点。

关键是清晰度和稳定性,虽然我打开替代方法(仍然必须使用socket.io)。

谢谢

所以如果我正确地理解了你的主要问题:你想要听取在实现本身中join和离开房间的事件,使得socket.join(room_id)应该激发你想要听的事件。

事情是文件没有提及任何方式听该事件。 事实上, 实施本身并没有显示join房间时发生事件的迹象。 我的猜测是,你将不得不实施join_room/leave_room系统来处理。

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

这可能是你要找的东西:

socket.on('disconnect', function() { for(var room in socket.rooms) { //do stuff before the client close the connection and leave the rooms } });