我正在從Javascript客戶端調用socket.on
方法面臨一個奇怪的問題。考慮下面的代碼:socket.on方法的奇怪問題
for(var i=0;i<2;i++) {
var socket = io.connect('http://localhost:5000/');
socket.emit('getLoad');
socket.on('cpuUsage',function(data) {
document.write(data);
});
}
這裏基本上我打電話這是由套接字服務器發出的cpuUsage
事件,但每次迭代我收到相同的值。這是輸出:
0.03549148310035006
0.03549148310035006
0.03549148310035006
0.03549148310035006
編輯:服務器端代碼,基本上我使用節點使用庫來計算CPU使用率:
socket.on('getLoad', function (data) {
usage.lookup(pid, function(err, result) {
cpuUsage = result.cpu;
memUsage = result.memory;
console.log("Cpu Usage1: " + cpuUsage);
console.log("Cpu Usage2: " + memUsage);
/*socket.emit('cpuUsage',result.cpu);
socket.emit('memUsage',result.memory);*/
socket.emit('cpuUsage',cpuUsage);
socket.emit('memUsage',memUsage);
});
});
凡在服務器端,我得到每個emit
和socket.on
的值不同。我很奇怪爲什麼會發生這種情況。在每個socket.on
調用後,我嘗試設置data = null
,但仍然打印相同的值。我不知道要搜索什麼詞組,所以我發佈了。任何人都可以請指導我?
請注意:我基本上是Java開發人員,並且在Javascript方面的經驗較少。
請出示CPU使用率計算的代碼。 – user568109
@ user568109,我加了服務器端代碼 –