socket.io дает проблему с node.js / express.js - PullRequest
0 голосов
/ 18 октября 2011

Я немного играю с node.js и socket.io.Вот код, который я пишу:

app.get('/play', function (req, res) {
//some code you don't need to see
var gameMessage = io.of('/game'+gameId);
});

Все импортировано правильно.gameId установлен правильно, а переменная io правильно инициализирована.При запуске этого кода (при попытке доступа к localhost / play) я получаю эту ошибку:

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);
        });

, я получаю бесконечный цикл ошибок в консоли при подключении второго игрока.

Можеткто-то догадывается что с этим не так?Спасибо.

1 Ответ

1 голос
/ 18 октября 2011

То, что вы делаете, неправильно, вы не должны помещать этот код Socket.IO в свой маршрут, приложения Express.js и приложения Socket.IO не «подключаются» таким образом.

Создайте отдельный файл на сервере Socket.IO, затем используйте socket.io-client , если вы хотите подключиться к Socket.IO (со стороны сервера ИЛИ со стороны клиента) для отправки сообщения например.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...