Firebase 使用GCM的时间关键型操作?
我即将在我的应用程序中实施GCM,但我无法在文档中找到以下问题的答案: 我的应用程序需要在服务器中交付时间紧迫的更改Firebase 使用GCM的时间关键型操作?,firebase,google-cloud-messaging,Firebase,Google Cloud Messaging,我即将在我的应用程序中实施GCM,但我无法在文档中找到以下问题的答案: 我的应用程序需要在服务器中交付时间紧迫的更改 即使设备处于睡眠状态,GCM是否会立即(无延迟)发送通知 通知会立即唤醒设备吗 将有大约2-3个,每秒最多20个通知,这会导致问题吗 这些要求是否会产生服务费用 即使设备处于睡眠状态,GCM是否会立即(无延迟)发送通知? 是的,您可以将邮件的优先级设置为 GCM尝试立即发送高优先级消息,允许GCM服务在可能的情况下唤醒睡眠设备,并打开与应用服务器的网络连接。例如,具有即时消
- 即使设备处于睡眠状态,GCM是否会立即(无延迟)发送通知
- 通知会立即唤醒设备吗
- 将有大约2-3个,每秒最多20个通知,这会导致问题吗
- 这些要求是否会产生服务费用
高优先级
消息,允许GCM服务在可能的情况下唤醒睡眠设备
,并打开与应用服务器的网络连接。例如,具有即时消息、聊天或语音呼叫警报的应用程序通常需要打开网络连接,并确保GCM毫不延迟地将消息发送到设备。仅当消息时间紧迫且需要用户立即交互时,才设置高优先级
,注意将消息设置为高优先级
比正常优先级消息更容易消耗电池电量
通知会立即唤醒设备吗?
以上描述中已对此进行了回答:)
将有大约2-3个,每秒最多20个通知,这会导致问题吗?
我认为这样的问题可以帮助你解决这个问题
实际上,由于GCM的可靠性问题,不建议将其用于时间关键型操作。通知可能会延迟、速率受限、在传输过程中丢失或以与发送顺序不同的顺序到达 您可以使用其他推送通知网关,这些网关对于时间紧迫的操作需求来说更加可靠 Pushy()为Android应用程序提供了一个高度可靠的推送通知网关,它使用自己的后台MQTT连接独立于GCM工作
全面披露:我发现了Pushy.“尽可能唤醒睡眠设备”。。“可能时”-这是完全不清楚的部分。请解释一下。关于第二个问题-它是针对1台设备的每秒计数。价目表是针对Firebase或FCM而不是GCM,@YordanYanakiev-Re“如果可能”,我不会依赖推送通知作为通知设备服务器更新的唯一方式。如果这是应用程序的关键更新信息,那么每当你的应用程序从推送消息或用户操作中醒来时,让应用程序向你的服务器询问自上次请求以来的任何更改(通过你使用的任何查询方法,由应用程序启动,而不是推送)。IIRC,连苹果都这么说。假设应用程序在任何情况下都能收到100%的推送消息,这不是一个好主意。[我不是当前技术的专家,但…]关键问题是你每天要收到多少通知?如果答案是“超过100”,或者也许这些天“超过1000”,考虑只使用偶尔的高优先级推送消息来唤醒应用程序,那么在它最后接收到更新之后,请向服务器请求所有更新,并让服务器将所有这些信息打包成某种类型的单个包。也就是说,您可能试图执行推送通知无效的操作;不要一推到底。并查看Firebase FCM的推送。。。。具体地说,考虑到许多通知,我假设您正在讨论向手机发送数据——这些不是用户需要看到的通知(因为这将是一个巨大的数字)。