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
行をコメントアウトした場合、私はエラーを取得しないでください。それはそれを生成しています。
私が必要とするチャネルをインスタンス化しているので、その行がそこにとどまるようにしたいと思います。このようにして、2人のプレイヤーが私のゲームを一緒にプレイできます。私はそれをインスタンス化し、
var chat = io.connect('http://localhost/chat' + gameId);
chat.emit('guess', {
guess: "ciao"
});
chat.on('guess', function (data) {
alert(data);
});
のように、クライアント側でいくつかのコードを実行しようとしていない場合、2番目のプレーヤーが接続されているように私は、コンソールにエラーの無限ループを取得します。
誰かがこれに間違っていると推測できますか?ありがとう。
プレーヤーのペアごとに別々のチャンネルを用意したいと思いますが、これらのチャンネルは2人のプレーヤーが接続されたときに作成されます。このようなことは可能でしょうか? – Masiar
あなたは何か他のことをすることができ、すべてのユーザーが自分のチャンネルに接続できるようにします。たとえば "Alex"が "Jim"にメッセージを送信すると、 "Jim"は "Jim"チャンネルを聴いているのでそのメッセージを受信し、その逆も同様です。 – alessioalex