【问题标题】:Google Cloud Messaging - CCS (XMPP) vs HTTP serverGoogle Cloud Messaging - CCS (XMPP) 与 HTTP 服务器
【发布时间】:2014-03-02 03:10:28
【问题描述】:

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

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

还有什么其他原因让您选择 CCS (XMPP) 而不是 HTTP,反之亦然?

【问题讨论】:

    标签: android push-notification google-cloud-messaging


    【解决方案1】:

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

    上游/下游消息

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

    消息传递(同步或异步)

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

    JSON

    • HTTP:以 HTTP POST 形式发送的 JSON 消息。
    • XMPP:JSON 消息封装在 XMPP 消息中。

    纯文本

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

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

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

    【讨论】:

      【解决方案2】:

      很遗憾谷歌云平台将在一年后禁用 XMPP API https://cloud.google.com/appengine/docs/deprecations/xmpp

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

      【讨论】:

        【解决方案3】:

        来自谷歌文档:

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

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

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

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

        【讨论】:

          【解决方案4】:

          通过对 gcm 的一次 http 调用,您可以一次向 1000 台设备广播一条消息。因为广播 http 比 CCS 好。

          【讨论】:

          • 但是您将如何通过 http 向客户广播?除非客户端正在 ping 服务器进行广播。
          • 你向 gcm 服务器发送一个 http post 请求。它将广播到设备。 Gcm 服务器是我们的服务器和移动设备之间的中间连接。
          【解决方案5】:

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

          另一方面,HTTP 编码要简单得多,因此除非您需要双向功能或需要非常高速地发送消息,否则我会坚持使用 HTTP。

          【讨论】:

          • “CCS (XMPP) 是异步的,这意味着它应该比 HTTP 更快”:一个简单的异步 ajax 调用不应该类似吗?此外,在任何给定点,都会有 1000 条消息的限制......所以如果你有很多用户交流 ccs 应该是一个问题。
          猜你喜欢
          • 1970-01-01
          • 2014-12-25
          • 2016-11-05
          • 1970-01-01
          • 2015-08-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-06-14
          相关资源
          最近更新 更多