谷歌云消息 -

问题描述:

我读过的文档 https://developer.android.com/google/gcm/index.html谷歌云消息 -

,我可以看到的唯一区别CCS(XMPP)与HTTP服务器是基于CCS(XMPP)服务器直接允许之间的双向通信android设备和GCM服务器。

是否有任何其他原因为什么你会选择通过HTTP的CCS(XMPP),反之亦然?

CCS(XMPP)是异步的,这意味着它应该比HTTP更快。它还使用设备上现有的GCM连接将消息从应用发送到服务器(由于不必打开自己的服务器连接,因此节省了电量)。

在另一方面,HTTP是简单得多的代码,所以除非你需要双向通信功能,或者您需要在非常高的速度发送邮件,我会用HTTP坚持。

+0

“CCS(XMPP)是异步的,这意味着它应该比HTTP更快”:不应该有一个简单的异步ajax调用类似吗?另外在任何给定的点上都有一个1000毫秒的节流阀......所以如果你有很多用户通信ccs应该是一个问题。 – user1517108

您可以通过一次http呼叫gcm向1000个设备广播消息。对于广播http比CCS好。

+0

但是如何通过http brooadcast客户端?除非客户端正在ping服务器进行广播。 – user1517108

+0

您发送一个http post请求到gcm服务器。它会广播给设备。 Gcm服务器是我们的服务器和移动设备之间的中间连接。 –

从谷歌文档:

您可以继续使用HTTP请求机制将消息发送到GCM服务器,并排侧CCS它使用XMPP。一些CCS的好处包括:

XMPP的异步特性,您可以用更少的资源发送更多的消息。

沟通是双向的,不仅可以在服务器将邮件发送到该设备,但该设备可以将消息发送回服务器。

设备可以使用用于接收的相同连接发回消息,从而延长电池寿命。一年 https://cloud.google.com/appengine/docs/deprecations/xmpp

不幸的是谷歌云平台将禁用XMPP API我会选择XMPP,以节省设备的电池引起大的关注其一个时下!