这是流程:
- 我向服务器发送请求:
GET /status/
- 我的服务器向我的客户端发送推送通知
- 我的客户-稍有延迟(最多10秒)-向我的服务器发出状态为:
POST /status/XYZ
的请求 - 现在,我从步骤1开始的请求应该返回XYZ
我的服务器是node.js,我使用express进行路由。有什么想法吗?我怎么才能做到这样?我的想法是在步骤3中将状态存储在数据库中,并在步骤1中每秒查询我的数据库,直到我得到状态,但我确信这不是一个好的解决方案。
实时状态?你应该使用套接字。看看socket.io
仍然要使用HTTP请求?
只需将第一个请求的结果存储到数据库内部(或外部)的对象中(它将充当缓存层)。因此,当他提出疑问时,他可以立即得到结果。类似于:
{
ABC: value
XYZ: value,
}
router.post('status/XYZ', (req, res) => {
return res.json(values['XYZ']);
});