我想告訴其他客戶在房間裏,當有人被斷開連接。廣播到房間不工作斷開
這裏是我的代碼:
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