Domanda

sto usando Node.js e voglio mandare indietro più risposte al client. Così il cliente invierà una richiesta AJAX POST e tornare un po 'di dati. Ma il server deve continuare a fare un po 'di elaborazione e quando questo è fatto, lo voglio di inviare più dati indietro.

So che questo è un buon candidato per Socket.io, ma non ho davvero visto un esempio di come utilizzare socket.io nell'ambito di un framework MVC. Va a finire nel controllore?

È stato utile?

Soluzione

Si potrebbe usare Eventi server inviati. Ecco un esempio:

https://github.com/chovy/nodejs-stream (esempio di codice sorgente completo )

UI

var source = new EventSource('stream');

source.addEventListener('a_server_sent_event', function(e) {
   var data = JSON.parse(e.data);
   //do something with data
});

Nodo

if ( uri == '/stream' ) {
  //setup http server response handling and get some data from another service
  http.get(options, function(resp){
    resp.on('data', function(chunk){
      res.write("event: a_server_sent_event\n");
      res.write("data: "+chunk.toString()+"\n\n");
    });
  });
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top