GCM的时间关键操作?

时间:2016-06-14 14:24:57

标签: firebase google-cloud-messaging

我即将在我的应用程序中实现GCM,但我无法在文档中找到以下问题的答案:

我的应用需要及时关键地传送服务器中的更改。

  • 即使设备正在睡眠,GCM也会立即发送通知(没有延迟)吗?

    • 通知会立即唤醒设备吗?
  • 每秒会有2-3个,最多20个通知,这是否会导致问题?

  • 这些要求的服务会有任何成本吗?

2 个答案:

答案 0 :(得分:3)

即使设备正在睡眠,GCM也会立即发送通知(没有延迟)?

是,您可以将消息的优先级设置为High priority

GCM会尝试立即发送high priority条消息,并在可能的情况下允许GCM服务wake a sleeping device并打开与您的应用服务器的网络连接。例如,具有即时消息,聊天或语音呼叫警报的应用程序通常需要打开网络连接并确保GCM毫不拖延地将消息传递给设备。仅当消息对时间至关重要并且需要用户立即进行交互时才设置high priority,并注意将消息设置为high priority会导致电池消耗超过普通优先级消息。

通知会立即唤醒设备吗?

在上面的描述中已经回答:)

每秒会有2-3个,最多20个通知,这会导致问题吗?

我认为这个问题可以帮助你解决这个问题。

具有这些要求的服务会有任何成本吗?

来自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。