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