希望了解像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