首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >nodejs-请求模块-将请求中的多个响应流式传输到http.ServerResponse

nodejs-请求模块-将请求中的多个响应流式传输到http.ServerResponse
EN

Stack Overflow用户
提问于 2016-03-26 23:58:24
回答 1查看 447关注 0票数 0

是否可以将来自多个请求的响应流式传输到http服务器响应?

在expressjs中,类似于-

代码语言:javascript
复制
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
}

我们的想法是在流到达时将其返回给浏览器(当我们获得对第二个api的响应时,它是最快的,然后将其流式传输到浏览器,然后是第三个api响应,最后是第一个api的响应)。

但是当我运行上面的代码时,只有第一个响应通过管道传输,然后连接关闭。

这在流管道中是可行的吗?在不使用socket.io的情况下解决这个问题有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2016-03-27 00:12:43

不可能一次流式传输所有数据,否则可能会得到混合或重复数据的响应。

此外,除非您事先了解每个端点的性能,否则无法提前知道哪个请求将首先完成。但是,我认为您可以将请求发送到所有三个端点,并只流式传输响应最快的端点(在该点中止其他两个端点),但是这并不一定保证该流将在其他端点之前完成。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36237422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档