GCM for iOS 的优势?

Posted

技术标签:

【中文标题】GCM for iOS 的优势?【英文标题】:Advantage of 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 限制? (即有效负载大小、消息存储时间、不支持折叠键)

【问题讨论】:

【参考方案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 应该只包含通知?还是数据和通知都可以?

以上是关于GCM for iOS 的优势?的主要内容,如果未能解决你的问题,请参考以下文章

PushSharp 是不是允许向 GCM for iOS 发送通知?

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

如何生成有效的 APNS 证书 (.p12) 以在 GCM for iOS 中使用?

请问谁能帮我解说一下arcgis server API for javascript 的发展前景和开发优势?

优势 ole db provider 10.0.0.3 adsoledb for 64 bit - 无法让它工作

细说ios开发和Android开发有什么区别?谁更有优势?