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

时间:2014-04-15 13:24:56

标签: javascript node.js socket.io function-parameter

我试图按如下方式设置套接字参数(缺口)

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

以下代码将undefined返回给客户端,这是问题所在。

但是当我这样做的时候......

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

这将返回' who'对所有人来说,ofc。

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

2 个答案:

答案 0 :(得分:1)

套接字无法传达JavaScript对象或任何无法简单地进行字符串化的内容。如果who{x: "monkey"}中的对象,则您可能希望使用who.x代替字符串:

socket.nick = who.x;

您还可以将对象字符串化为JSON,然后在客户端上解析它:

socket.nickJson = JSON.stringify(who);

答案 1 :(得分:0)

Explosion pills快速帮助解决问题。

而不是......

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

应该是

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