Firebase 基于主题的推送通知和 iOS QoS

问题描述

对于通过 APNS 的常规单设备推送通知,不太重要的推送可以“替换”更重要的推送,因为如果设备暂时离线,则只会保留每个设备/应用程序的最后一条通知并随 APNS 一起传递。 https://developer.apple.com/library/archive/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/APNSOverview.html#//apple_ref/doc/uid/TP40008194-CH8-SW5

假设我通过 Firebase FCM 中基于主题的推送向单个设备提供关键推送,以及信息性非关键推送。 基于主题的推送是否仍然可以取代离线设备的关键推送?

我的前任留下了一份设计文档,其中说基于主题的推送订阅可以避免信息推送取代关键订阅的问题,但我还没有找到任何文档来支持这一点。我认为当应用程序处于前台时,我最好使用 websockets 或类似的(也许通过 PubNub)进行信息推送,并且只使用 APNS/FCM 进行关键推送。我说得对吗?

解决方法

免责声明:这并没有直接解决基于 Firebase 主题的 这个问题,相反,它提供了一个替代解决方案 FCM 和 APN 在 QoS 方面的相同功能/实现,或者更具体地说,检索离线时可能丢失的消息的能力。

使用 PubNub 发布、持久化和推送

PubNub 存储服务

好吧,抛开 APNs 和 FCM,PubNub 会persist all of your messages for later retrieval when you enable the Storage service。因此,当设备离线时,它们可以接收推送通知 (APNs/FCM),无论最终用户是否收到/确认这些通知,您的应用程序都可以轻松检索设备离线时发送的所有消息。

PubNub 移动推送服务

使用 PubNub 的另一个优点是您包含 the APNs/FCM push payloads in the realtime publish payload,如果设备处于活动/在线状态并订阅了该频道,则它会实时接收消息。如果设备没有订阅频道,它仍然会收到 FCM/APNs 推送通知。

注意:您必须在您的 PubNub 密钥集上启用存储服务,并且 根据需要配置保留:1 天、3 天、... 30 天或 无限制。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...