如何在提出请求时等待客户的回复?

时间:2017-02-05 15:59:29

标签: node.js express

这是流程:

  1. 我向我的服务器发送了一个请求:GET /status/
  2. 我的服务器向我的客户端发送推送通知
  3. 我的客户 - 稍有延迟(最多10次) 秒) - 向我的服务器发出状态为POST /status/XYZ
  4. 的请求
  5. 现在我在第1步开始的请求应该返回XYZ
  6. 我的服务器是node.js,而我正在使用express进行路由。任何想法我怎样才能实现这样的目标?我的想法是在步骤3中将状态存储在我的数据库中,并在步骤1中每秒查询我的数据库,直到我有状态,但我很确定这不是一个好的解决方案。

1 个答案:

答案 0 :(得分:1)

实时状态?你应该使用套接字。看看socket.io

还想使用HTTP(s)请求吗?

只需将第一个请求的结果存储到数据库内部(或外部)的对象中(它将充当缓存层)。因此,当他询问时,他可以立即得到那个结果。类似的东西:

{
 ABC: value
 XYZ: value,
}
router.post('status/XYZ', (req, res) => {
  return res.json(values['XYZ']);
});