希望瞭解像Google雲消息傳遞(以前稱爲Google Cloud到設備消息傳遞)這樣的推送通知的基本原因更加電池友好,適用於雲< - >設備通信?爲什麼以及如何推送通知(如GCM)電池效率?
在我看來,替代技術涉及「輪詢」(通過TCP/IP),同時保持連接處於CONNECTED狀態,使用保持活動。還是有更好的?
我對GCM有限的認識是,它也使用TCP/IP和Keepalive,但客戶端從不輪詢服務器的狀態。相反,服務器通知客戶有關傳入消息,而訂閱特定類型消息的應用程序會異步通知消息。此外,通用的GCM連接在多個應用之間共享,從而允許設備電子設備在「協調」的時間進行休眠/休眠,而不需要多個應用程序保持電子設備比其需要的更「開啓」(電活動)。這是正確的理解嗎?或者還有更多嗎?
最後,這與使用Keepalive的TCP/IP的MQTT相比如何? MQTT(顯然)電池效率低於GCM的原因是什麼?
GCM特別節省電池的另一個原因是「collapse_key」和「delay_while_idle」消息參數的組合。當只有消息序列中的最新消息很重要時(例如來自足球比賽的得分通知),空閒設備不會收到不必要的消息,而只會在設備醒來時收到最近的消息。較舊的消息被GCM服務器中較新的消息取代,只有最新的消息被傳送,這導致較少的電池消耗。 – Piovezan