使用推送通知进行实时更新有啥问题?

Posted

技术标签:

【中文标题】使用推送通知进行实时更新有啥问题?【英文标题】:What are the gotchas of using push notifications for realtime updates?使用推送通知进行实时更新有什么问题? 【发布时间】:2021-03-19 03:33:45 【问题描述】:

我们有一个 react-native 应用程序,并希望每次服务器端发生变化时强制我们的应用程序更新。 我们目前正在使用 firebase 云消息传递向我们的(react-native)应用程序发送推送通知,但现在也需要一种添加实时更新的方法。

我们考虑只使用推送通知(而不是像 mqtt 之类的东西)。 我想知道是否有任何我目前没有想到的问题/限制:

我在an old SO comment 中读到,Apple 指示不要将推送通知仅用于数据更新,但我现在找不到任何参考资料。

我知道推送通知不像 MQTT 那样“实时”,我认为只要延迟不超过几秒就可以。

我知道有效负载大小限制为 4kb,但这对我们来说也不是问题

那些推送通知消息不会有任何可见的 UI,只有数据负载,以使我们的应用更新

还有其他我目前没有想到的负面影响吗? 使用 mqtt 之类的东西有什么好处吗?

【问题讨论】:

【参考方案1】:

没有使用 react native 的经验,但从推送通知的角度来看,平台既不保证交付,也不保证及时交付。在安卓上;设备制造商经常做他们不应该做的事情,破坏 FCM 传递通知以帮助节省电池寿命。

您的应用不应完全依赖推送通知本身来传递您的内容,并应有某种备份,例如不频繁的轮询计时器或以防万一。

在 mqtt 上使用推送通知的好处是 MQTT 您需要在 androidios 的情况下运行服务,您需要您的应用程序在前台才能接收消息。推送通知没有限制,因为它们大部分都集成到操作系统中

【讨论】:

以上是关于使用推送通知进行实时更新有啥问题?的主要内容,如果未能解决你的问题,请参考以下文章

使用firebase推送通知中的onTokenRefresh与getToken有啥区别?

如何使用 quickblox 实时获取推送通知

推送通知不会立即更新

有啥方法可以将推送式网络通知发送到移动设备? [关闭]

GCM for iOS 和 Apple 提供的推送通知服务有啥区别

用 PHP 编写的将推送通知发送到 iPhone 的代码有啥错误?