2015-07-18 86 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

編輯:問題解決了,所以分公司將不再顯示問題。我已經上傳的代碼要點,如果有人碰巧遇到這樣的問題 - 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