谷歌云消息限制

时间:2016-01-16 10:59:09

标签: android http google-cloud-messaging xmpp messaging

我知道网站上存在类似问题,但我感到困惑,因为httpxmpp有差异限制:

this page表示httpxmpp之间存在差异。

第一个限制是[xmpp& http]:最多4KB的数据

第二个限制是:

http您可以一次向1000个用户发送消息。 (ref

xmpp对于每个发件人ID,GCM允许并行使用1000个连接。ref

  

您可以一次向1000个用户发送消息。因此,如果您有更多用户,则您必须多次从服务器发送邮件,但每次都向不同的用户发送邮件(ref

第三个限制是:

http:我在android开发者中找不到这个限制:

  

在没有折叠的情况下可以存储多少条消息是有限制的。该限制当前为100.如果达到限制,则丢弃所有存储的消息。然后,当设备重新联机时,它会收到一条特殊消息,指示已达到限制。然后,应用程序可以正常处理这种情况,通常是通过请求完全同步。 (ref

xmpp

  

发送到CCS的每条消息都会收到ACK或NACK响应。尚未收到这些回复之一的邮件被视为待处理。如果待处理的消息计数达到100,则应用服务器应停止发送新消息并等待CCS确认一些现有的待处理消息(ref

我的问题:

1.在第二个限制中,如果我们使用http方法并拥有2000个用户,我们应该发送两次消息,每次都有1000个用户吗?我们可以这样做吗?

2. xmpp无法支持多播消息传递,我们可以在xmpp中使用主题进行多播吗?

  1. 主题广播消息的限制? (ref除外)
  2. 4.在第三个限制中,如果我向300个用户发送消息,并且 100个顶级用户处于离线状态,他们会在到达时收到message或任何notification回来和网上? (注意:使用广播http并循环xmpp

    1. 以主题方式限制效果吗?

    2. httpxmpp之间的第三个限制是否存在任何差异?

    3. 7. httpxmpp中存在其他限制?

1 个答案:

答案 0 :(得分:6)

  1. 是的,你可以做到。使用HTTP时,批量大小可能为1000(收件人)。

  2. 是。 Topic消息是PubSub方法,如果您的客户注册了给定主题,您只需一个请求即可向所有客户发送推送通知。

  3. 没有限制。一旦Topic Messaging上每个应用程序有100万订阅者限制,这个限制不再存在。

  4. 你混淆了第三个限制:

    • 第一个(HTTP)是关于一个客户端,而不是所有客户端。因此,如果您在离线时向单个客户端发送超过100条消息,那么当他再次重新联机时,将无法提供任何消息。
    • 第二个(XMPP)是关于所有队列的,它发生在服务器端。这意味着如果那里存在超过100条未经处理的消息,则必须向GCM发送任何消息。

    因此,考虑到离线用户,您没有任何问题,当他们重新上线时,GCM会处理向所有人发送消息。

  5. 没有

  6. 我在4中解释过。

  7. 我不记得了。