我的服务器端有以下内容:
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 } }
*/
});Run Code Online (Sandbox Code Playgroud)
套接字已添加到房间,但 socket.room 数组未更新。我在 v1.3.5 和 v1.3.2 上看到这个问题
任何帮助表示赞赏。谢谢!
好的,结果是因为 socket.js 中的 .join 方法(参见模块)有一个异步函数,我的 console.logs 在房间被分配给 socket.rooms 之前被调用
课程:如果您想在加入后立即获取房间,请使用 .join 的回调函数。
| 归档时间: |
|
| 查看次数: |
680 次 |
| 最近记录: |