Android GCM对iOS的优势?

Android GCM对iOS的优势?,android,ios,push-notification,google-cloud-messaging,Android,Ios,Push Notification,Google Cloud Messaging,我有一个服务器和一个Android应用程序,它使用GCM进行推送通知,一切正常,我需要开始创建一个iOS应用程序来做同样的事情。GCM目前支持iOS: 我对架构的理解如下: Android GCM: 应用程序->GCM->应用程序->服务器(请求/注册令牌) 服务器->GCM->应用程序(发送推送通知) 对于使用GCM的iOS,以下情况是否正确 应用程序->APNS->应用程序->GCM->应用程序->服务器(请求/注册令牌) 服务器->GCM->APNS->应用程序(发送推送通知) 如果我的理

我有一个服务器和一个Android应用程序,它使用GCM进行推送通知,一切正常,我需要开始创建一个iOS应用程序来做同样的事情。GCM目前支持iOS:

我对架构的理解如下:

Android GCM:

应用程序->GCM->应用程序->服务器(请求/注册令牌)

服务器->GCM->应用程序(发送推送通知)

对于使用GCM的iOS,以下情况是否正确

应用程序->APNS->应用程序->GCM->应用程序->服务器(请求/注册令牌)

服务器->GCM->APNS->应用程序(发送推送通知)


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

您的理解是正确的。GCM的优点是,您的服务器只需要实现GCM的接口即可发送Android和iOS通知。APN的接口有些麻烦,更难使用

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


不,GCM不能绕过APNS的限制。

您提到GCM提供的消息最多可达4k,我想您只引用Android?因为APNs有2k的限制,iOS上的GCM通过发送两次或其他方式来帮助绕过它吗?@NinjaCowgirl:1)他们可能只是在谈论应用程序在前台的时间(在这种情况下,它不会通过APNs直接连接到GCM。2)使用HTTP/2的新APNS后端允许推送高达4KB的开发者。apple.com/videos/wwdc/2015/?id=720@NinjaCowgirl正如user102008所说,当应用程序位于前台时,这些数据直接通过GCM发送。数据负载和通知负载都适用于iOS和Android。在iOS上,区别在于通知有效负载通过APN发送,而数据有效负载通过GCM自己的连接发送,只有当应用程序在前台时,GCM自己的连接才在那里。所以,如果我想在android和ios中都使用GCM,那么有效负载应该只包含通知?或者数据和通知都可以吗?