node.js - 来自多个调用的http响应

时间:2013-09-15 23:00:51

标签: node.js api http express stream

在我的快递应用程序中,我希望对API进行多次调用,并在收到时将每个响应流回客户端,而不是等待所有响应。

例如,如果我同时向旧金山,伯克利和帕洛阿尔托的餐馆提出要求,我不应该等待所有的回复回来,并且能够在它们可用时流式传输它们。我该怎么做?

1 个答案:

答案 0 :(得分:1)

由于浏览器在将结果传递给javascript之前等到收到整个响应,因此无法直接进行此操作。另一方面,您可以使用websockets进行操作。

可能的架构:

  1. 服务器:与客户端建立websocket连接
  2. 服务器:并行启动4个API请求
  3. 服务器:当数据到达每个连接时,将每个数据包传递给websocket,例如{api: "yelp", data: ... }
  4. 客户端:继续将传入数据附加到代表每个api响应的字符串中。
  5. 服务器:连接完成后,发送完成消息{ api: "yepl", done: true }
  6. 客户:收到完成消息后,您将获得该API的完整回复。
  7. 我非常怀疑这是一个好主意。它要复杂得多,你最好使用来自客户端的4个并行请求,或者如果可能的话,直接从浏览器查询apis。

相关问题