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 的发展前景和开发优势?