我即将在我的应用程序中实现GCM,但我无法在文档中找到以下问题的答案:
我的应用需要及时关键地传送服务器中的更改。
即使设备正在睡眠,GCM也会立即发送通知(没有延迟)吗?
每秒会有2-3个,最多20个通知,这是否会导致问题?
这些要求的服务会有任何成本吗?
答案 0 :(得分:3)
是,您可以将消息的优先级设置为High priority。
GCM会尝试立即发送high priority
条消息,并在可能的情况下允许GCM服务wake a sleeping device
并打开与您的应用服务器的网络连接。例如,具有即时消息,聊天或语音呼叫警报的应用程序通常需要打开网络连接并确保GCM毫不拖延地将消息传递给设备。仅当消息对时间至关重要并且需要用户立即进行交互时才设置high priority
,并注意将消息设置为high priority
会导致电池消耗超过普通优先级消息。
在上面的描述中已经回答:)
我认为这个问题可以帮助你解决这个问题。
来自Google Cloud Messaging: Overview
Google Cloud Messaging(GCM)是一项免费服务,可让开发人员在服务器和客户端应用之间发送消息。这包括从服务器到客户端应用程序的下游消息,以及从客户端应用程序到服务器的上游消息。
请注意Firebase Cloud Messaging (FCM)是新的 GCM的版本。它继承了可靠且可扩展的GCM 基础设施,加上新功能!如果你 正在将消息传递集成到新的应用程序中,从FCM开始。 GCM用户是 强烈建议升级到FCM,以便从中受益 FCM今天和未来都有特色。
答案 1 :(得分:0)
实际上,由于其可靠性问题[1] [2] [3],因此不建议GCM用于时间要求严格的操作。通知可能会延迟,速率受限,在途中丢失,或者以与发送时不同的顺序到达。
您可以使用其他推送通知网关,这对您的时间关键操作需求更加可靠。
Pushy(https://pushy.me/)为Android应用提供高度可靠的推送通知网关,使用自己的后台MQTT连接独立于GCM工作。
完全披露:我创立了Pushy。