我正在尝试使用以下代码将io.sockets.clients()的内容传递给客户端:
var room_users = io.sockets.clients(newroom);
socket.emit('update_room_users', room_users);
(newroom是一个字符串var)
但我收到错误:
将循环结构转换为JSON
在控制台中。
我不知道为什么会这样,因为这应该是socket.io网站上的正确代码?
答案 0 :(得分:2)
您无法将包含循环引用的对象转换为JSON。 循环引用是一个包含自身的对象。
循环引用示例:
var a = {};
var b = {a:a};
a.b = b;
room_users
当然包含循环引用,因为它包含引用自己引用的其他客户端的套接字客户端...
抱歉我的英语不好。