node.js – 来自多个调用的streamhttp响应

在我的快速应用程序中,我想对API进行多个调用,并将每个响应都传回客户端,而不是等待所有响应。

例如,如果我请求在旧金山,伯克利和帕洛阿尔托同时进餐,我不应该等待所有的回复,并且能够在他们可用的时候stream出。 我将如何做到这一点?

由于浏览器在将结果传递给JavaScript之前等待收到整个响应 ,因此这不是直接可能的。 另一方面,你可以使用websocket来完成。

可能的架构:

  1. 服务器 :build立与客户端的websocket连接
  2. 服务器 :并行地向API发送4个请求
  3. 服务器 :当数据到达每个连接,传递每个数据包到websocket像{api: "yelp", data: ... }
  4. 客户端 :保持传入数据附加到代表每个API响应的string。
  5. 服务器 :当一个连接完成后,发送完成消息{ api: "yepl", done: true }
  6. 客户端 :收到完成消息后,您将获得该API的完整响应。

我非常怀疑这是一个好主意 。 它要复杂得多,你最好使用来自客户端的4个并行请求,或者如果可能,直接从浏览器查询API。