Ist es möglich, Antworten von mehreren Anfragen auf HTTP-Server-Antwort zu streamen?nodejs- Request-Modul- Streaming mehrere Antworten von der Anfrage an http.ServerResponse
in Express.js, etwas wie-
router.get('/streamingApi',(req,res)=> {
request('http://localhost:3000/first').pipe(res); //take 300 ms
request('http://localhost:3000/second').pipe(res); //take 100 ms
request('http://localhost:3000/third').pipe(res); // take 200 ms
}
Die Idee ist, den Strom zu Browser zurückzukehren, wie es kommt (wenn wir die Antwort für die zweite api erhalten, die die schnellste ist, strömen sie zum Browser, dann dritte api Antwort und dauern die Antwort der ersten API).
Aber wenn ich den obigen Code ausführen, nur die erste Antwort erhalten piped und dann schließt die Verbindung.
ist dies sogar mit Stream-Piping machbar? irgendwelche Vorschläge, um dies ohne Verwendung von socket.io zu beheben?
Danke für die Antwort. Ich brauche alle 3 Antworten, nicht nur die erste. aber nicht auf alle 3 Anfragen warten wollen, um zu beenden. – msreekm
Ich verstehe nicht, was Sie dann erreichen wollen. Sie möchten alle 3 Antworten puffern und * dann * zurück zum Client senden? Wenn Sie alle 3 Antworten benötigen und nicht warten möchten, bis sie fertig sind, wie erwarten Sie, dass Sie alle an den Kunden liefern? – mscdex
mscdex- das frage ich mich auch, ob es einen Weg gibt, es zu tun. . Eine Möglichkeit, die ich erreichen konnte, war die Verwendung von Websockets. aber Skalierung von WebSockets-Anwendung ist nicht so einfach. also ich versuche zu sehen, ob wir das mit regelmäßigen http-anrufen machen können. Danke für die Antwort. – msreekm