这是流程:
- 我向我的服务器发送请求:
GET/status/
- 我的服务器向我的客户端发送推送通知
- 我的客户 - 稍有延迟后(最多 10
秒) - 向我的服务器发出请求,状态为:
POST /状态/XYZ
- 现在我在第 1 步开始的请求应该返回 XYZ
我的服务器是node.js,我使用express进行路由。我有什么想法可以实现这样的目标吗?我的想法是在步骤 3 中将状态存储在数据库中,并在步骤 1 中每秒查询我的数据库,直到获得状态,但我很确定这不是一个好的解决方案。
最佳答案
实时状态?您应该为此使用套接字。看看socket.io
仍想使用 HTTP(s) 请求吗?
只需将第一个请求的结果存储到数据库内部(或外部)的对象中(它将充当缓存层)。因此,当他查询时,他可以立即得到结果。像这样的东西:
{
ABC: value
XYZ: value,
}
router.post('status/XYZ', (req, res) => {
return res.json(values['XYZ']);
});
关于node.js - 如何在发出请求时等待客户端的响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42054137/