Socket.io:如何正确处理函数参数?

我想如下设置套接字参数(nick)

socket.on('something', function(who){ socket.nick = who; //something }); 

下面的代码返回undefined到客户端,这是这里的问题。

但是当我这样做…

 socket.on('something', function(who){ socket.nick = 'who'; //something }); 

这返回给所有人的“谁”。

有没有办法让上面的代码片段工作?

套接字不能传递JavaScript对象或任何不能简单串接的东西。 如果who{x: "monkey"}一个对象,则可能需要使用who.x来代替,它是一个string:

 socket.nick = who.x; 

您也可以将对象串化为JSON,然后在客户端parsing它:

 socket.nickJson = JSON.stringify(who); 

随着爆炸药的闪电快速援助问题得到解决。

代替…

 socket.on('something', function(who){ socket.nick = who; //something }); 

它应该是

 socket.on('something', function(who){ socket.nick = who.x; //something });