0

我有一个小而烦人的问题,我找不到解决方案。

在服务器端我有这个:

...
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方法可以使用socket.on('disconnect',...

我得到undefined了 userName 属性。


这根本不可能吗?如果这不是最佳实践,请告诉我。我对 node.js 很陌生

4

1 回答 1

1

我不认为disconnect事件是通过参数传递的,所以你实际上是在破坏你的socket变量。只需为其处理程序使用一个空参数列表:

socket.on('disconnect', function() 
{
  console.log(socket.userName+" has disconnected");
});
于 2013-04-09T18:55:32.443 回答