2

我正在制作一个游戏,我想创建 2 用户房间,当我尝试获取用户数量时

io.sockets.emit('roomUsers', io.sockets.clients(openRoom).lenght);

node.js 崩溃

这是我得到的日志,我不知道这是什么意思:

/Users/ilya/game-app-1/node_modules/socket.io/lib/parser.js:75
      data = JSON.stringify(ev);
                  ^
TypeError: Converting circular structure to JSON
    at Object.stringify (native)
    at Object.exports.encodePacket (/Users/ilya/game-app-1/node_modules/socket.io/lib/parser.js:75:19)
    at SocketNamespace.packet (/Users/ilya/game-app-1/node_modules/socket.io/lib/namespace.js:154:23)
    at SocketNamespace.emit (/Users/ilya/game-app-1/node_modules/socket.io/lib/namespace.js:188:15)
    at Socket.<anonymous> (/Users/ilya/game-app-1/app.js:101:14)
    at Socket.EventEmitter.emit [as $emit] (events.js:96:17)
    at SocketNamespace.handlePacket (/Users/ilya/game-app-1/node_modules/socket.io/lib/namespace.js:335:22)
    at Manager.onClientMessage (/Users/ilya/game-app-1/node_modules/socket.io/lib/manager.js:488:38)
    at WebSocket.Transport.onMessage (/Users/ilya/game-app-1/node_modules/socket.io/lib/transport.js:387:20)
    at Parser.<anonymous> (/Users/ilya/game-app-1/node_modules/socket.io/lib/transports/websocket/hybi-16.js:39:10)
4

2 回答 2

1

JSON.stringify() 无法转换具有循环引用的对象。无论“ev”是什么,它都以某种方式在自身内部引用自己。

例如,DOM 节点有ownerDocuments,它指的是document. document最终通过document.body.ownerDocument.

于 2013-02-08T18:50:31.670 回答
1

这意味着它正在尝试将对象转换为 json,并且树下有一个成员指向它的父对象之一。由于递归,这将创建一个无限深的 json 文件

于 2013-02-08T18:45:27.897 回答