Google Cloud Messaging - CCS(XMPP)与HTTP服务器

问题描述 投票:17回答:5

我已经阅读了文档https://developer.android.com/google/gcm/index.html

我能看到的唯一区别是基于CCS(XMPP)的服务器允许在Android设备和GCM服务器之间直接进行双向通信。

是否有任何其他原因可以选择通过HTTP选择CCS(XMPP),反之亦然?

android push-notification google-cloud-messaging
5个回答
18
投票

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

另一方面,HTTP更容易编码,因此除非您需要双向功能或者需要以非常高的速度发送消息,否则我会坚持使用HTTP。


5
投票

您可以使用单个http调用gcm一次向1000个设备广播消息。对于广播http比CCS好。


2
投票

不幸的是,谷歌云平台将在一年后https://cloud.google.com/appengine/docs/deprecations/xmpp禁用XMPP API

我选择XMPP来节省设备电池是当今最受关注的问题之一!


1
投票

XMPP消息传递与the following ways中的HTTP消息传递不同:

上游/下游消息

  • HTTP:仅下游,云到设备。
  • XMPP:上游和下游(设备到云,云到设备)。

消息传递(同步或异步)

  • HTTP:同步。应用程序服务器将消息作为HTTP POST请求发送并等待响应。此机制是同步的,阻止发送方发送另一条消息,直到收到响应。
  • XMPP:异步。应用服务器通过持久XMPP连接以全线速度向/从所有设备发送/接收消息。 XMPP连接服务器异步发送确认或失败通知(以特殊ACK和NACK JSON编码的XMPP消息的形式)。

JSON

  • HTTP:作为HTTP POST发送的JSON消息。
  • XMPP:封装在XMPP消息中的JSON消息。

纯文本

  • HTTP:作为HTTP POST发送的纯文本消息。
  • XMPP:不支持。

多播下游发送到多个注册令牌。

  • HTTP:以JSON消息格式支持。
  • XMPP:不支持。

0
投票

来自Google文档:

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

XMPP的异步特性允许您使用更少的资源发送更多消息。

通信是双向的 - 您的服务器不仅可以向设备发送消息,而且设备可以将消息发送回您的服务器。

设备可以使用用于接收的相同连接发回消息,从而延长电池寿命。

© www.soinside.com 2019 - 2024. All rights reserved.