[英]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.