0
问题我在玩node.js和socket.io。这是我写的一段代码:socket.io给node.js/express.js
app.get('/play', function (req, res) {
//some code you don't need to see
var gameMessage = io.of('/game'+gameId);
});
所有东西都输入正确。 gameId
被正确设置并且io
变量被正确初始化。 当运行这段代码(试图访问本地主机/播放时)我得到这个错误:
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);
});
我得到错误的无限循环中控制台,第二个玩家连接。
有人能猜出这有什么问题吗?谢谢。
我想为每对玩家分别设置一个频道,但是这两个频道将在两个玩家连接时创建。是否有可能做这样的事情? – Masiar
您可以做其他事情,让每个用户连接到他的频道。例如,当“亚历克斯”向“吉姆”发送消息时,“吉姆”会收到该消息,因为它收听“吉姆”频道,反之亦然。 – alessioalex