我的服务器端有以下内容:
io.on('connection', function (socket) {
socket.join('main');
console.log(socket.rooms);
/* ==> []
*/
console.log(socket.adapter.rooms);
/* ==> { '5incJ4hA4tKyJHUjAAAA': { '5incJ4hA4tKyJHUjAAAA': true },
'stufn-iGnU6NTcXPAAAB': { 'stufn-iGnU6NTcXPAAAB': true },
main: { 'stufn-iGnU6NTcXPAAAB': true } }
*/
});
套接字已添加到房间,但socket.room数组未更新。我在v1.3.5和v1.3.2上看到了这个问题
任何帮助表示赞赏。谢谢!
答案 0 :(得分:4)
好的,事实证明是因为socket.js中的.join方法(参见模块)有一个异步函数我的console.logs在将房间分配给socket.rooms之前被调用
课程:如果您想在加入后立即获得房间,请使用.join的回调函数。