簡體   English   中英

使用socket.io替換Mongodb的輪詢機制

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM