2013-04-09 55 views
0

我有一個小但令人討厭的問題,我無法找到解決方案。在斷開連接事件中找不到socket.io套接字屬性,node.js

在服務器端,我有這樣的:

... 
socket.on('join', function (name) 
{ 
    console.log("Joining: "+name); 
    socket.userName = sanitize(name); 
} 
socket.on('msg', function(m) 
{ 
    console.log(socket.userName+" says: "+m);//This works 
}); 

socket.on('disconnect', function(socket) 
{ 
    console.log(socket.userName+" has disconnected");//This does not work 
}); 
... 

的問題是,socket.userName是我所有.on方法可用exeptsocket.on('disconnect',...

我得到undefined爲用戶名屬性。


這是根本不可能做到的嗎?如果這不是最好的,請告訴我。我對node.js太新了

+0

現在發現錯誤。我怎麼沒有看到這個?我有'套接字'作爲輸入變量,這是不同的插座,我想訪問... – Automatico 2013-04-09 18:55:40

回答

1

我不認爲disconnect事件是通過一個參數,所以你有效地打破你的socket變量。只需使用其處理程序的空參數列表:

socket.on('disconnect', function() 
{ 
    console.log(socket.userName+" has disconnected"); 
}); 
+0

只是意識到自己。謝謝 – Automatico 2013-04-09 18:56:05

+0

需要等10分鐘才能接受 – Automatico 2013-04-09 18:57:13

相關問題