javascript - io.sockets.clients() 给出错误 "Converting circular structure to JSON"

标签 javascript json node.js websocket socket.io

我正在尝试使用以下代码将 io.sockets.clients() 的内容传递给客户端:

var room_users = io.sockets.clients(newroom);
socket.emit('update_room_users', room_users);

(newroom 是一个字符串变量)

但是我得到了错误:

Converting circular structure to JSON

在控制台中。

我不知道为什么会这样,因为根据 socket.io 网站,这应该是正确的代码?

最佳答案

您不能将包含循环引用的对象转换为 JSON。 循环引用是一个包含自身的对象。

循环引用示例:

var a = {};
var b = {a:a};
a.b = b;

room_users 当然包含循环引用,因为它包含引用其他客户端的套接字客户端......


抱歉我的英语不好。

关于javascript - io.sockets.clients() 给出错误 "Converting circular structure to JSON",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20199174/

相关文章:

javascript - myModal 表单在一页上打开,但是当使用相同的 id 时,它不会从主页打开

node.js - 获取来自 aws sqs 的所有消息

javascript - 将 mongoDB 文档数据存储为变量

javascript - 在您自己的网站上共享带有缩略图的链接

javascript - ThreeJS 更新相机位置,使平面世界位置与 DIV 屏幕位置匹配

javascript - 大量元素的行内 block 元素之间的垂直间隙

python - Python 中的 JSON 转储在文件中写入换行符和回车符。

python - 如何将变量作为值插入字典中

javascript - 如何将 json 键和 json 值推送到两个数组中

node.js - 如何读取 csv 文件并将其存储在对象数组中?