Question

J'utilise Node.js et je veux renvoyer plusieurs réponses au client. Ainsi, le client envoie une requête AJAX POST et récupérer des données. Mais le serveur doit continuer à faire un peu de traitement et quand cela est fait, je veux qu'il envoyer plus de retour de données.

Je sais que c'est un bon candidat pour Socket.io, mais je ne l'ai pas vraiment vu un exemple de la façon d'utiliser socket.io dans le cadre d'un framework MVC. Est-il aller dans le contrôleur?

Était-ce utile?

La solution

Vous pouvez utiliser serveur événements envoyés. Voici un exemple:

https://github.com/chovy/nodejs-stream (exemple complet de code source )

UI

var source = new EventSource('stream');

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

Noeud

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");
    });
  });
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top