我已经阅读了文档https://developer.android.com/google/gcm/index.html
我能看到的唯一区别是基于CCS(XMPP)的服务器允许在Android设备和GCM服务器之间直接进行双向通信。
是否有任何其他原因可以选择通过HTTP选择CCS(XMPP),反之亦然?
CCS(XMPP)是异步的,这意味着它应该比HTTP更快。它还使用设备上的现有GCM连接将消息从您的应用程序发送到您的服务器(这可以节省电池,因为您不必打开自己的服务器连接)。
另一方面,HTTP更容易编码,因此除非您需要双向功能或者需要以非常高的速度发送消息,否则我会坚持使用HTTP。
您可以使用单个http调用gcm一次向1000个设备广播消息。对于广播http比CCS好。
不幸的是,谷歌云平台将在一年后https://cloud.google.com/appengine/docs/deprecations/xmpp禁用XMPP API
我选择XMPP来节省设备电池是当今最受关注的问题之一!
XMPP消息传递与the following ways中的HTTP消息传递不同:
上游/下游消息
消息传递(同步或异步)
JSON
纯文本
多播下游发送到多个注册令牌。
来自Google文档:
您可以继续使用HTTP请求机制将消息发送到GCM服务器,与使用XMPP的CCS并排。 CCS的一些好处包括:
XMPP的异步特性允许您使用更少的资源发送更多消息。
通信是双向的 - 您的服务器不仅可以向设备发送消息,而且设备可以将消息发送回您的服务器。
设备可以使用用于接收的相同连接发回消息,从而延长电池寿命。