广播到房间不工作断开连接

时间:2014-09-24 11:58:11

标签: node.js socket.io

当有人断线时,我想通知房间里的其他客户。

这是我的代码:

socket.on('disconnect', function(){ 
    var user = authedUsers[socket.id];
    socket.broadcast.to(user.room).emit('message', {user: user, message: user.display_name + ' has been disconnected.'});
});

但是我收到了这个错误:

RangeError: Maximum call stack size exceeded
npm ERR! weird error 8
npm WARN This failure might be due to the use of legacy binary "node"
npm WARN For further explanations, please read
/usr/share/doc/nodejs/README.Debian

npm ERR! not ok code 0

1 个答案:

答案 0 :(得分:0)

错误是当调用事件断开连接时,套接字已经关闭。

因此,当您调用有缺陷的行时,它会搜索以封闭的套接字发送,并且由于某种原因最终导致调用堆栈溢出。

您应该在断开套接字之前发送deconnection消息:)