【问题标题】:Simpler push-notification, perhaps ask server if there is any?更简单的推送通知,也许询问服务器是否有?
【发布时间】:2016-07-04 11:14:31
【问题描述】:

我正在开发一个 ide,我作为管理员可以向我的所有客户(移动设备)发送通知。我一直在搜索并找到GCM和其他服务......我想知道是否有任何更简单的解决方案。

我考虑每隔 1 小时从所有客户端(移动设备)向我的服务器打一个休息电话,以检查是否有新通知。如果有,获取它们,然后将这些通知呈现给客户端(移动设备)。

【问题讨论】:

  • GCM 是您的应用中最可靠、最简单的推送消息服务。初学者理解起来有点困难,但是google有几个教程和demo app。连续调用会降低应用程序的效率。选择 GCM,实施需要一些时间,但稍后会取得丰硕成果。
  • 在 iOS 上你不能像那样执行调度,所以这绝对不是一个选项。但是,推送到底有什么复杂之处呢?

标签: android ios push-notification google-cloud-messaging


【解决方案1】:

Polling 将导致更多的电池寿命消耗和一些其他额外的不必要的过程(如@MohammedAtif 在 cmets 中也提到的),例如,当您的客户端应用程序调用您的服务器但最终为空时。这个过程被浪费了,因为什么都没发生。

GCM 不这样做。会在它的流程上参考official docs。

生命周期流

  • 发送和接收下游消息。
    • 发送消息。应用服务器向客户端应用发送消息:
      1. 应用服务器向 GCM 连接服务器发送消息。
      2. 如果设备离线,GCM 连接服务器会排队并存储消息。
      3. 设备在线时,GCM 连接服务器向设备发送消息。
      4. 在设备上,客户端应用程序根据平台特定的实现接收消息。有关详细信息,请参阅特定于平台的文档。
    • 接收消息。客户端应用从 GCM 连接服务器接收消息。

在最近的 I/O 2016 上也宣布,GCM 的继任者现在是 Firebase Cloud Messaging,它不仅有推送通知服务,而且还免费提供其他功能(例如 Analytics)。

总的来说,使用 GCM(或 FCM)是一种比轮询更简单的方法。它处理您发送的消息和其他一些消息的排队。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-18
    • 1970-01-01
    • 2017-09-22
    • 1970-01-01
    • 2013-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多