[英]Using socket.io to replace polling mechanism against Mongodb
我有一個使用Mongodb和Nodejs的應用程序。 還有另一個外部Web服務可以收集數據並更新Mongodb。 我希望有一種方法可以在網頁中自動發布這些更改,而無需進行實際輪詢。 目前,我在socket.io中使用輪詢機制將更改推送到UI。 是否可以使用socket.io自動發布Mongodb的更改來刷新UI?
因此無法控制Web服務,它是一個將數據上傳到mongo的外部應用程序。
MongoDB為新數據提供了一種特殊類型的輪詢,但不包括修改現有數據的情況。
通過結合MongoDB的上限集合和tailable游標功能,可以對新數據進行優化輪詢。 這是一篇關於如何操作的博客文章和一個代碼示例 。
因此,實現您提到的內容的方法是通過輪詢,並且僅針對新數據的情況提供此優化。
如果有權訪問上傳的Web服務:
對於沒有使用服務器socket.io push進行輪詢的解決方案,您需要使上載Web服務在同一節點進程中運行,並從Mongo中調用的回調調用io.sockets.emit('yourChannel', newData);
,將新數據廣播到所有瀏覽器客戶端。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.