Posso inviare risposte multiple tramite Node.js al cliente?
-
22-10-2019 - |
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?
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