插座不会加入房间

时间:2018-04-12 16:55:16

标签: javascript node.js sockets socket.io

我会在客户端连接后立即尝试加入会议室。代码运行没有错误,但实际上并没有把用户放在我想要的房间里。这是我的代码:

Server.prototype.startSockets = function() {

this.socket = io.listen(this.server);

this.socket.of('game').on('connection', function(user) {

    user.id = this.userId;
    this.userId++;

    user.join('chat');      
    console.log(user.rooms);

    this.socket.of('game').to('chat').emit('loginError', 'only for test chat.');

    consoleLog('SERVER', '(' + user.id + ' | Guest) has connected');

我知道用户正在加入的事实,它为用户ID分配连接并打印到他们已连接的控制台。

当我记录user.rooms时,它会打印出一个空对象{}

只是为了澄清consoleLog是一个放置时间戳的函数,而不是导致错误或任何错误的拼写错误

1 个答案:

答案 0 :(得分:0)

请参阅https://github.com/socketio/socket.io/issues/2914

socket.join是一个异步调用。您必须使用回调函数来记录房间。

user.join('chat', function() {console.log(user.rooms)});

相关问题