我想告诉其他客户在房间里,当有人被断开连接。广播到房间不工作断开
这里是我的代码:
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
可能是错的,但我认为,当有人断开事件被调用,套接字已断开。但错误是关于调用堆栈的大小,所以它可能在代码中的其他地方,你确定这里发生了错误吗? – DrakaSAN 2014-09-24 12:00:56
是的,我认为是。因为错误只发生在处理这个部分:socket.broadcast.to(user.room).emit('message',{user:user,message:user.display_name +'has been disconnected。'}); – 2014-09-24 12:08:27
调用堆栈大小就像一个堆栈溢出错误,表示您正在调用很多次(现实中太多)的函数。你能发布你的完整代码来帮助我们理解吗?你的user.room真的存在吗? – mfrachet 2014-09-24 12:26:03