[英]How to write a middle-tier http API endpoint that can stream results as they arrive to the client?
场景是这样的——我有一个前端 web 服务器,我在 node.js 中编写。我有一个尚未编写的中间层内部 API 层,用任何东西编写。 内部 API 是唯一允许与数据存储(恰好是关系数据库)对话的东西。
免责声明:我是 node.js 初学者。
node.js 想要异步进行数据访问 - 这使得像 Database.query.all 这样的调用效率低下,因为在整个列表组装完成之前响应回调不会启动。 我读过的文档建议相反,一次将 stream 结果发送给客户会更好。
我想知道如何编写前端和中间层 http 内部 API,以便我可以在这里利用 node.js 的异步性。
我想问题是“我如何通过 http 访问 stream 结构化数据”? 我想这就是我要求支持的内部 API 的功能。
我是不是该:
(注意:请不要说“摆脱中间层,这样你就可以直接与数据库对话”——那不是一个选择)
我不确定“流媒体”到底是什么意思; 从你给出的想法来看,它可以被解释为一些HTTP 服务器推送或长轮询技术,或者只是发出后续的 XHR 请求。
由于您使用的是节点,我推荐Socket.io ,它允许您真正将数据推送到浏览器,只要你想。
如果您选择使用 XHR 的 go,只需告诉浏览器下一步要请求什么。
如果这不适合你,并且你想使用服务器推送或长轮询, response.write()似乎是 go 的方式。但是你可能会遇到请求超时等问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.