将数组从 websocket 发送到客户端

Sending an array from websocket to clients

本文关键字:客户端 websocket 数组      更新时间:2023-09-26

我在将数组从后端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]"[object Object]"

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

我真正需要的只是将内容发送到客户端,但我不知道该怎么做哈哈

任何想法都值得赞赏:)

如果你使用的是 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 的结果,则客户端必须运行 parse 来提取原始数据,反之亦然。

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

使用 .toString() 方法:

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

然后用这个在客户端解释该输出

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