【问题标题】:Are Android push notifications reliable? [closed]Android推送通知可靠吗? [关闭]
【发布时间】:2015-03-14 02:20:32
【问题描述】:

我想知道是否可以使用推送通知消息而不是服务,或者换句话说,推送通知传递是否完全可靠。我知道 IOS 不可信,但我不确定 Google 是否保证交付。所以,请赐教。

【问题讨论】:

  • 你认为什么可靠?
  • Google 也不保证交付;据我所知没有人这样做
  • 你到底想做什么?
  • 我正在考虑一项与帮助人们相关的服务,该服务在街道上发生故障,如果没有可用的救援车,服务器可能会延迟超过 30 分钟才能发送一辆。因此,如果我启动一项服务,它将以一种无用的方式消耗电池。我认为如果通知传递失败的比率约为千分之一,我可以使用推送通知。

标签: android notifications push google-cloud-messaging


【解决方案1】:

不,抱歉。您可以在 Google 的官方文档 (https://developers.google.com/cloud-messaging/concept-options) 上阅读的标准 GCM 推送通知是一项尽力而为的服务。我引用:

换句话说,GCM 将保证“现在或永远”必须交付的消息尽最大努力。

如果您正在寻找可靠的推送消息传递 API,您可以尝试以下服务:

这两个服务都建立了自己的类似于 GCM 的后台连接,以提高推送通知的可靠性。

【讨论】:

【解决方案2】:

由于 GCM 的底层架构[1][2][3] 存在各种问题,通过 GCM/FCM 发送的 Android 推送通知不可靠。推送通知可能会延迟、受速率限制、在传输过程中丢失或以与发送时不同的顺序到达。

您可以使用其他推送通知网关来代替,它们对于您的时间关键型运营需求来说更加可靠。

您可以尝试 Pushy (https://pushy.me/),该服务使用自己的后台 MQTT 连接为独立于 GCM 工作的 Android 应用程序提供高度可靠的推送通知网关。

全面披露:我创立了 Pushy。

【讨论】:

  • 嗨,Pushy 先生,是否可以通过 Pushy 保证交货?我需要向特定设备发送推送通知,并立即告知它是否已送达。
  • 虽然没有推送通知网关可以保证交付(因为我们无法控制的因素太多,例如不可靠的蜂窝连接/没有接收/设备关闭/设备处于省电模式等) ,我们确实提供了一个通知状态 API,可让您检查设备是否收到通知:pushy.me/docs/api/notification-status
  • 感谢 Elad,我们一定会使用您的解决方案,它看起来很棒,而且比 FCM 更可靠
  • 为完整披露点赞!
【解决方案3】:

它们取决于 Nathan Kellert 所描述的网络连接和其他问题。 如果与受信任的服务提供商一起使用,而不是消息推送可能会很有用。 如果你想使用推送服务,那么选项还有 parse、pushboots 和其他选项。

【讨论】:

    【解决方案4】:

    事实上,没有办法 100% 保证任何通知。苹果和谷歌控制之外的几个变量将阻止他们这样做。在用户设备上,您拥有用户偏好和网络连接等信息。

    虽然这会让他们无法保证交付,但最大的事情之一是他们都没有承担 100% 的责任来启动推送本身。我希望随着 Apple 和 Google 都开始探索应用服务托管,这种情况会有所改变,但他们仍然将所有责任都交给了开发人员。这意味着开发人员主要负责启动推送及其内容的服务器。这样他们仍然可以说“如果没有送达,那一定是你的错”。如果您熟悉 iOS,那么您就会知道其中的痛苦有多大,但这只是设置您的计算机/服务器来处理远程推送通知。

    我发现,让 Parse.com 之类的服务处理所有通知传递,这对实现接近 100% 的传递变得越来越有用。它们提供了一些简洁的功能,例如跟踪所有已安装的设备、它们的操作系统和它们的推送通知状态(徽章编号)。他们提供了一些非常酷的其他功能。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多