nodejs socket.io在函数循环内部发射

我想通过循环内的socket.io发射。 为此,我做了一个很好的触发器,但是在每个触发器上我调用了socket.emit,并且只有第一个发射器工作。

这里是服务器代码:

var server = require('http').createServer(handler); var io = require('socket.io')(server); var fs = require('fs'); var ee = require('events').EventEmitter; var trig = new ee(); server.listen(8080); function handler(req,res){ fs.readFile('./index.html', 'utf-8', function(error, content) { res.writeHead(200, {"Content-Type": "text/html"}); res.end(content); console.log('page affichée'); }); } io.on('connection',function(socket){ socket.on('run',function(v){ run(v); }); trig.on('node',function(i){ io.sockets.emit('node',i); console.log(i); }); }); function run(v){ for(i=0;i<v;i++){ trig.emit('node',i+1); } } 

这里是客户端代码:

 <input id='file' type='text'></input> <input type='button' value='lancer le process' onclick="socket.emit('run',document.getElementById('file').value);"></input> <script> var compt_nod = document.getElementById('compteur_nodes'); socket = io.connect('http://127.0.0.1:8080/'); socket.on('node',function(v){ compt_nod.value = v; console.log(v); }); </script> 

我从服务器获取日志,但只有客户端的第一个答案。 我在JS中很新,特别是在Node中,所以对于这个简单的问题表示抱歉。