我会在客户端连接后立即尝试加入会议室。代码运行没有错误,但实际上并没有把用户放在我想要的房间里。这是我的代码:
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是一个放置时间戳的函数,而不是导致错误或任何错误的拼写错误
答案 0 :(得分:0)
请参阅https://github.com/socketio/socket.io/issues/2914
socket.join是一个异步调用。您必须使用回调函数来记录房间。
user.join('chat', function() {console.log(user.rooms)});