2015-07-18 2 views
0

Я сделал функцию, чтобы вы могли отправлять сообщения в чат из CMD, транслируя его как сервер. Но у меня возникла проблема. Каждый раз, когда я перезагружаю страницу, сообщение отправляется много раз. Поэтому, если я перезагружу страницу 5 раз, сообщение сервера отправляется 6 раз. (Считая первую нагрузку)Node.js & Socket.io - Сообщения от отправки cmd несколько раз

Вот пример: enter image description here enter image description here enter image description here

Ниже приводится ветвь полного кода. Как я могу это исправить?

https://github.com/Crypting/chat/tree/server_messages

EDIT: Проблема была решена, так что отрасль больше не будет показывать эту проблему. Я загрузил код суть, если кто-нибудь случится столкнуться с этой проблемой - https://gist.github.com/Crypting/dc5167c8ca3b18950b39

ответ

2

Хорошо, взято из Вашего app.js:

io.on('connection', function (socket) { 
    ... 
    var stdin = process.stdin, stdout = process.stdout; 

    stdin.resume(); 
    stdin.on('data', function(data) { 
     ... 
    }); 
}); 

Это буквально означает: Каждый раз, когда есть кто-соединение, добавляемой другой слушатель для stdin. Вместо этого переместите его за пределы устройства подключения:

io.on('connection', function (socket) { 
    ... 
}); 

var stdin = process.stdin, stdout = process.stdout; 

stdin.resume(); 
stdin.on('data', function(data) { 
    ... 
}); 
+0

Ох, почему я этого не заметил ... Спасибо :) – Cosmetify

Смежные вопросы