2016-11-29 97 views
1

在我的AngularJS應用程序中檢查通知是否有推薦策略?通知檢查策略

通過'通知'我正在談論消息警報,當他們登錄到應用程序時顯示給用戶。

我的計劃是通知未讀通知的用戶在應用程序的的NavBar如下圖所示:

NavBar notifications

我的應用我的RESTful API(使用Node.js的,快遞,MongoDB的書面)通信,所以我預計新的通知將寫入MongoDB集合,並提供通知用戶的詳細信息。

我不確定的是AngularJS應用程序會在用戶登錄後檢查通知。每次用戶從一個路徑導航到另一個路徑時,我都可以調用我的API以獲取未讀通知,但這看起來過於簡單,如果在用戶查看頁面時發生新通知,則無法正常工作。

另一種方式是某種定時器系統,例如每30秒檢查一次。但是,當沒有任何用戶的新通知時,這會導致對我的API進行不必要的輪詢。

所以,想知道是否有推薦的策略。謝謝你的幫助。

回答

1

輪詢是一種解決方案,但效率非常低。解決您的問題的是websockets。 Websockets是一種在客戶端和服務器之間提供全雙工雙向通信的技術。所以你可以從你的服務器發送消息到你連接的客戶端。您的服務器維護着一系列連接的客戶端,您只需知道需要向其發送消息的ID。

對於你的堆棧,我最好的解決方案是Socket.io http://socket.io 它也有很酷的功能。例如,您可以「觀察」模型,因此如果數據庫中的模型更改(例如更新用戶配置文件),則可以觸發事件並自動將消息發送給客戶端。此客戶端獲取並處理通知並執行某些操作,例如在警報圖標上放置徽章。

希望這對你有用。

+0

非常棒,謝謝@Jorge。套接字看起來正是我所需要的,我一直在閱讀關於socket.io的文章,它看起來很理想。非常感謝。 – Mook5ter