【发布时间】:2011-10-18 09:31:58
【问题描述】:
我正在使用 node.js 和 socket.io。这是我正在写的一段代码:
app.get('/play', function (req, res) {
//some code you don't need to see
var gameMessage = io.of('/game'+gameId);
});
一切都正确导入。 gameId 已正确设置,io 变量已正确初始化。
运行此代码时(尝试访问 localhost/play 时)我收到此错误:
TypeError: Converting circular structure to JSON
at Object.stringify (native)
at Array.<anonymous> (/path/to/my/game/node_modules/express/node_modules/connect/lib/middleware/session/memory.js:74:31)
at EventEmitter._tickCallback (node.js:126:26)
如果我注释掉 var gameMessage 代码行,我不会收到错误消息。这就是它的生成。
我希望该行保留在那里,因为它正在实例化我需要的通道。这样两个人就可以一起玩我的游戏了。如果我不实例化它并尝试在客户端运行一些代码,例如
var chat = io.connect('http://localhost/chat' + gameId);
chat.emit('guess', {
guess: "ciao"
});
chat.on('guess', function (data) {
alert(data);
});
当第二个玩家连接时,我在控制台中得到一个无限循环的错误。
有人能猜出这有什么问题吗?谢谢。
【问题讨论】: