Firebase 使用GCM的时间关键型操作?

Firebase 使用GCM的时间关键型操作?,firebase,google-cloud-messaging,Firebase,Google Cloud Messaging,我即将在我的应用程序中实施GCM,但我无法在文档中找到以下问题的答案: 我的应用程序需要在服务器中交付时间紧迫的更改 即使设备处于睡眠状态,GCM是否会立即(无延迟)发送通知 通知会立即唤醒设备吗 将有大约2-3个,每秒最多20个通知,这会导致问题吗 这些要求是否会产生服务费用 即使设备处于睡眠状态,GCM是否会立即(无延迟)发送通知? 是的,您可以将邮件的优先级设置为 GCM尝试立即发送高优先级消息,允许GCM服务在可能的情况下唤醒睡眠设备,并打开与应用服务器的网络连接。例如,具有即时消

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

我的应用程序需要在服务器中交付时间紧迫的更改

  • 即使设备处于睡眠状态,GCM是否会立即(无延迟)发送通知

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

  • 这些要求是否会产生服务费用

即使设备处于睡眠状态,GCM是否会立即(无延迟)发送通知? 是的,您可以将邮件的优先级设置为

GCM尝试立即发送
高优先级
消息,允许GCM服务
在可能的情况下唤醒睡眠设备
,并打开与应用服务器的网络连接。例如,具有即时消息、聊天或语音呼叫警报的应用程序通常需要打开网络连接,并确保GCM毫不延迟地将消息发送到设备。仅当消息时间紧迫且需要用户立即交互时,才设置
高优先级
,注意将消息设置为
高优先级
比正常优先级消息更容易消耗电池电量

通知会立即唤醒设备吗? 以上描述中已对此进行了回答:)

将有大约2-3个,每秒最多20个通知,这会导致问题吗? 我认为这样的问题可以帮助你解决这个问题

这些要求是否会产生服务费用? 从

Google Cloud Messaging(GCM)是一项免费服务,允许开发者在服务器和客户端应用程序之间发送消息。这包括从服务器到客户端应用的下游消息,以及从客户端应用到服务器的上游消息

请注意这是新的 GCM的版本。它继承了可靠且可扩展的GCM 基础设施,以及新功能!如果你 正在将消息集成到新应用程序中,请从FCM开始。GCM用户是 强烈建议升级到FCM,以便从新的 FCM现在和未来的特点


实际上,由于GCM的可靠性问题,不建议将其用于时间关键型操作。通知可能会延迟、速率受限、在传输过程中丢失或以与发送顺序不同的顺序到达

您可以使用其他推送通知网关,这些网关对于时间紧迫的操作需求来说更加可靠

Pushy()为Android应用程序提供了一个高度可靠的推送通知网关,它使用自己的后台MQTT连接独立于GCM工作


全面披露:我发现了Pushy.

“尽可能唤醒睡眠设备”。。“可能时”-这是完全不清楚的部分。请解释一下。关于第二个问题-它是针对1台设备的每秒计数。价目表是针对Firebase或FCM而不是GCM,@YordanYanakiev-Re“如果可能”,我不会依赖推送通知作为通知设备服务器更新的唯一方式。如果这是应用程序的关键更新信息,那么每当你的应用程序从推送消息或用户操作中醒来时,让应用程序向你的服务器询问自上次请求以来的任何更改(通过你使用的任何查询方法,由应用程序启动,而不是推送)。IIRC,连苹果都这么说。假设应用程序在任何情况下都能收到100%的推送消息,这不是一个好主意。[我不是当前技术的专家,但…]关键问题是你每天要收到多少通知?如果答案是“超过100”,或者也许这些天“超过1000”,考虑只使用偶尔的高优先级推送消息来唤醒应用程序,那么在它最后接收到更新之后,请向服务器请求所有更新,并让服务器将所有这些信息打包成某种类型的单个包。也就是说,您可能试图执行推送通知无效的操作;不要一推到底。并查看Firebase FCM的推送。。。。具体地说,考虑到许多通知,我假设您正在讨论向手机发送数据——这些不是用户需要看到的通知(因为这将是一个巨大的数字)。