【问题标题】:Advantage of GCM for iOS?GCM for iOS 的优势?
【发布时间】:2015-07-05 20:56:58
【问题描述】:

我有一个服务器和一个使用 GCM 推送通知的 Android 应用程序,一切正常,我需要开始创建一个 iOS 应用程序来做同样的事情。 GCM 目前支持 iOS:https://developers.google.com/cloud-messaging/ios/start

我对架构的理解如下:

Android GCM:

App->GCM->App->服务器(请求/注册令牌)

Server->GCM->App(发送推送通知)

以下对于使用 GCM 的 iOS 是否正确?

App->APNS->App->GCM->App->服务器(请求/注册令牌)

Server->GCM->APNS->App(发送推送通知)

如果我的理解是正确的,我为什么要使用 GCM,因为它似乎添加了一个额外的层并且可能会延迟推送通知? GCM 是否绕过/处理了 APNS 限制? (即有效负载大小、消息存储时间、不支持折叠键)

【问题讨论】:

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


    【解决方案1】:

    你的理解是正确的。 GCM 的优点是您的服务器只需要实现 GCM 的接口即可发送 Android 和 iOS 通知。 APNS 的界面比较繁琐,使用起来也比较困难。

    此外,GCM 还提供了一些高级功能,例如主题、数据消息(最多 4k)、上游消息(设备到服务器)、交付收据等。它们可能对你有用,也可能没用。

    不,GCM 无法绕过 APNS 的限制。

    【讨论】:

    • 您提到 GCM 提供高达 4k 的消息,我假设您仅引用 Android?因为 APNs 有 2k 的限制,iOS 上的 GCM 是否通过发送两次或其他方式来帮助绕过它?
    • @NinjaCowgirl:1)他们可能只是在谈论应用程序何时处于前台(在这种情况下,它不会通过 APNS 并直接连接到 GCM。2)新的 APNS 后端使用HTTP/2 允许最多推送 4KB developer.apple.com/videos/wwdc/2015/?id=720
    • @NinjaCowgirl 就像 user102008 说的,这些是应用在前台时直接通过 GCM 传递的。
    • 数据负载和通知负载都适用于iOS和Android。在 iOS 上,不同之处在于通知负载通过 APNS 发送,而数据负载通过 GCM 自己的连接发送,该连接仅在应用程序处于前台时才存在。所以,如果我想在 android 和 ios 中使用 GCM,payload 应该只包含通知?还是数据和通知都可以?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-06
    • 2012-08-03
    • 1970-01-01
    • 1970-01-01
    • 2011-11-20
    • 2019-08-26
    相关资源
    最近更新 更多