0

我正在使用Google頻道從服務器執行推送通知。它工作正常,但是當我打開調試器窗口時,我可以看到很多正在進入服務器的輪詢請求。推送通知是否會導致服務器上的連續輪詢?

推送通知的方式是否有效?如果是,那麼它有什麼用處呢?

var token ="<%token%>";// This will creaete unique identifier(some id created by google api + ur key) 

    channel = new goog.appengine.Channel(token);  
     socket = channel.open();  

    socket.onopen = function() { 

    $('#messages').append('<p>Connected!</p>'); 

    }; 

謝謝。

回答

0

GCM不這樣做。請參閱official docs關於它的流程。

生命週期流

  • 發送和接收下行消息。
    • 發送消息。應用程序服務器將消息發送到客戶端應用程序:
      1. 應用程序服務器向GCM連接服務器發送消息。
      2. 如果設備處於脫機狀態,GCM連接服務器將排隊並存儲消息。
      3. 當設備在線時,GCM連接服務器將消息發送到設備。
      4. 在設備上,客戶端應用程序根據平臺特定的實現接收消息。有關詳細信息,請參閱平臺特定的文檔。
    • 接收消息。客戶端應用程序從GCM連接服務器接收消息。

而且在最近的I/O 2016宣佈,GCM的繼任者現在是Firebase Cloud Messaging,它不僅具有推送通知服務,而且還具有其他功能(一個例子是分析)是免費的。

因此,總體而言,使用GCM(或FCM)比輪詢更簡單。它處理您發送的消息和其他一些消息的隊列。


部分我的回答here的。還包括一個想法,當發送推送通知時,爲什麼Polling不理想。