Puis-je envoyer plusieurs réponses via Node.js au client?
-
22-10-2019 - |
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?
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