node.js loops socket.io emit

node.js - nodejs socket.io emiten dentro de la función loop



loops (0)

Me gustaría emitir a través de socket.io dentro de un bucle. Para eso hice un disparador que funciona bien, pero en cada trigonometría llamo socket.emit y solo el primero emita trabajos.

Aquí está el código del servidor:

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

y aquí está el código del cliente:

<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>

Obtuve el registro del servidor, pero solo la primera respuesta del lado del cliente. Soy bastante nuevo en JS y especialmente en Node, así que discúlpate por esta pregunta tal vez simple.