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.

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top