socket.io donnant problème avec Node.js / express.js
Question
Je joue un peu avec Node.js et socket.io. Ceci est le morceau de code que j'écris:
app.get('/play', function (req, res) {
//some code you don't need to see
var gameMessage = io.of('/game'+gameId);
});
Tout est importé correctement. gameId
est correctement défini et la variable io
est correctement initialisé.
Lors de l'exécution de ce code (en essayant de localhost / lecture accès) Je reçois cette erreur:
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)
Si je commente la ligne de code var gameMessage
, je ne reçois pas l'erreur. Alors que de le générer.
Je voudrais que la ligne de rester là-bas parce qu'il est instancier un canal que j'ai besoin. De cette façon, deux personnes peuvent jouer ensemble mon jeu. Si je ne instancier que et essayez d'exécuter un code du côté client comme
var chat = io.connect('http://localhost/chat' + gameId);
chat.emit('guess', {
guess: "ciao"
});
chat.on('guess', function (data) {
alert(data);
});
je reçois une boucle infinie d'erreur dans la console comme le deuxième joueur se connecte.
Quelqu'un peut-il deviner ce qui ne va pas avec ça? Merci.
La solution
Qu'est-ce que vous faites est mal, vous ne devriez pas mettre ce code Socket.IO dans votre itinéraire, express.js applications et des applications Socket.IO ne sont pas « connexion » comme ça.
Faire un fichier séparé avec votre serveur Socket.IO, utilisez socket.io-client quand vous voulez vous connecter à Socket.IO (du côté client côté serveur OR) pour envoyer un message par exemple.