我有一个小而恼人的问题,我找不到解决方案。
在服务器端,我有这个:
...
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很陌生
我不认为disconnect
事件传递了一个参数,所以你有效地打败了你的socket
变量。只需为其处理程序使用一个空参数列表:
socket.on('disconnect', function()
{
console.log(socket.userName+" has disconnected");
});