从websocket发送数组到客户端

时间:2012-05-20 05:17:08

标签: javascript node.js websocket

我在从后端js向客户端发送数组时遇到问题。

我在服务器端尝试了以下内容:

for (var i=0; i < clients.length; i++) {
    clients[i].send(clients);
}

for (var i=0; i < clients.length; i++) {
    clients[i].send(JSON.stringify(clients));
}
  • 也在客户端使用json.stringify以及

for (var i=0; i < clients.length; i++) {
    clients[i].send(clients.join('\n')));
}
  • 我再次在客户端试过这种方法。

不幸的是,上述解决方案都没有起作用,JSON.stringify方法显然不能在服务器端工作,因为JSON.stringify是一个浏览器方法,但其他方法返回[object Object]或{{1} }

如何将数组"[object Object]"发送到客户端,或者即使我可以将其编码为JSON,然后将其发送并在客户端解析它。

我真正需要的是将内容发送到客户端,但我不知道如何做到这一点哈哈

赞赏任何想法:)

2 个答案:

答案 0 :(得分:6)

如果您使用的是Nodejs,则默认情况下JSON对象可用(它内置于V8中,因此Nodejs可以免费获取)。

JSON.stringify()方法的反转是JSON.parse()。

例如:

> s = JSON.stringify([1,2,3]);
'[1,2,3]'
> a = JSON.parse(s);
[ 1, 2, 3 ]

如果服务器正在发送stringify的结果,那么客户端必须运行解析以提取原始数据,反之亦然。

答案 1 :(得分:1)

虽然这不是一个真正的解决方案,但它现在对我有用,除非我找到更好的方法。

使用.toString()方法:

    for (var i=0; i < clients.length; i++) {
      clients[i].send(clients.toString());
    }

然后使用此

在客户端解释该输出

var clients = string.split(',');