¿Puedo enviar múltiples respuestas a través de Node.js al cliente?
-
22-10-2019 - |
Pregunta
Estoy usando Node.js
Y quiero enviar múltiples respuestas al cliente. Por lo tanto, el cliente enviará una solicitud de publicación AJAX y recuperará algunos datos. Pero el servidor tiene que continuar haciendo un procesamiento y cuando se haga, quiero que devuelva más datos.
Sé que este es un buen candidato para Socket.io
, pero realmente no he visto un ejemplo de cómo usar socket.io
En el contexto de un marco MVC. ¿Va en el controlador?
Solución
Puede usar eventos enviados al servidor. Aquí hay un ejemplo:
https://github.com/chovy/nodejs-stream (ejemplo de código fuente 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");
});
});
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow