io.sockets.clients()给出错误“将循环结构转换为JSON”

时间:2013-11-25 17:17:56

标签: 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是一个字符串var)

但我收到错误:

  

将循环结构转换为JSON

在控制台中。

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

1 个答案:

答案 0 :(得分:2)

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

循环引用示例:

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

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


抱歉我的英语不好。