在nodejs上使用socket.io我试图根据某些用户行为来“改变”房间。要达到这个目的:
使用字符串常量作为房间名称,一切正常,但使用变量无效。没有错误显示,但插座没有离开房间。在上面的代码中,日志“ room before2”和“ room after”打印相同的列表,并且currentRoom等于socket.adapter.rooms键项
var newroom = "funnyroom" + room;
//get the current from room list
var currentRoom = getCurrentRomm(rooms);
logger.debug("room before " + Object.keys(socket.adapter.rooms));
socket.leave(currentRoom, function (err){
logger.debug("error " + err);
logger.debug("room after " + Object.keys(socket.adapter.rooms));
});
socket.join(newroom);