我希望服务器在其中一个客户端断开连接时向所有客户端发送消息。
这样的事情:
socket.on('disconnect', function() {
server.sockets.in(room).emit('bye');
});
但是...
答案 0 :(得分:3)
检查套接字对象后,我想出了这个解决方案:
socket.on('disconnect', function() {
var rooms = io.sockets.manager.roomClients[socket.id];
for (var room in rooms) {
if (room.length > 0) { // if not the global room ''
room = room.substr(1); // remove leading '/'
console.log('user exits: '+room);
server.sockets.in(room).emit('bye');
}
}
});
答案 1 :(得分:0)
不是100% - 但尝试一下:
连接房间或添加新用户时,请记住他们的用户名或ID或套接字中的内容:
socket.on('adduser', function(username){
socket.username = username;
socket.join('room');
}
然后听房间留下事件:
socket.room.on('leave', function(){
socket.broadcast.to(this).emit(socket.username + ' says seeya!');
}
无论如何值得一试 - 如果不这样的话,我相信类似的东西会起作用。