2016-11-19 89 views
0

我在AngularJS中有一個客戶端,我從服務器端使用Java中的多個SSE(Server-Sent-Events)(在不同Web服務器中有多個端點後端)。在angular.js eventsource中訂購和過濾Server-Sent-Events

 Diagram link

注:我必須使用SSE。

我目前註冊一個監聽器,每種類型的事件從每個SSE連接未來,如:

source.addEventListener('alpha', function(e) { 
    doSomething(); 
}, false); 

目的是根據這些事件顯示通知,以及與此我有幾個問題:

  • 客戶如何知道後端的信息是否發生變化?
  • 如何組織和過濾這些事件?例如,通過同時接收來自多個連接的多個事件,如何管理它們以便向客戶顯示關於特定事件的特定通知?

    注意:我不僅僅在談論每種類型的事件組織,而且我還需要考慮事件是否比另一個更重要。

    到目前爲止,我只想到接收所有事件,並將它們保存在可以排序和過濾的列表中。如果兩個SSE事件同時被觸發,是否有問題?你知道這個例子嗎?

  • 在客戶端組織事件的邏輯是一個好主意嗎?

  • 我應該爲這些事件創建一個數據庫嗎?

謝謝

回答

0

在您需要AJAX定期調用知道是否有在服務器(SSE)變化數據的客戶端。在angularjs中,服務器端調用有$http and $q服務。你也可以使用$scope.$watch

在JavaScript中沒有辦法處理android處理推送通知的方式。

如果網絡套接字選項符合您的要求,您也可以看到網絡套接字選項。

+0

謝謝@Aniruddha Das。我有幾個問題: - 爲什麼我必須定期調用服務器以確定數據是否有變化?當且僅當服務器中的內容發生變化時,SSE事件才能發送新數據?如果沒有,是不是可以將舊數據與從AngularJS中同一事件接收到的新數據進行比較? [我問,因爲也許這些不是最好的方法] P.D.不幸的是我不得不使用SSE。 – sie

+0

正如你想通知你的用戶,如果有任何改變從服務器端。如果用戶瀏覽器是開放的,他不需要刷新,您只需定期撥打電話更新用戶瀏覽器 –

+0

我明白了。好的,最後一個問題。你認爲在客戶端組織事件的邏輯是一個好主意嗎?謝謝! – sie