我知道网站上存在类似问题,但我感到困惑,因为http
和xmpp
有差异限制:
this page表示http
和xmpp
之间存在差异。
第一个限制是[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
中使用主题进行多播吗?
4.在第三个限制中,如果我向300个用户发送消息,并且 100个顶级用户处于离线状态,他们会在到达时收到message
或任何notification
回来和网上? (注意:使用广播http
并循环xmpp
)
以主题方式限制效果吗?
http
和xmpp
之间的第三个限制是否存在任何差异?
7. http
或xmpp
中存在其他限制?
答案 0 :(得分:6)
是的,你可以做到。使用HTTP
时,批量大小可能为1000(收件人)。
是。 Topic
消息是PubSub
方法,如果您的客户注册了给定主题,您只需一个请求即可向所有客户发送推送通知。
没有限制。一旦Topic Messaging
上每个应用程序有100万订阅者限制,这个限制不再存在。
你混淆了第三个限制:
HTTP
)是关于一个客户端,而不是所有客户端。因此,如果您在离线时向单个客户端发送超过100条消息,那么当他再次重新联机时,将无法提供任何消息。XMPP
)是关于所有队列的,它发生在服务器端。这意味着如果那里存在超过100条未经处理的消息,则必须向GCM发送任何消息。 因此,考虑到离线用户,您没有任何问题,当他们重新上线时,GCM会处理向所有人发送消息。
没有
我在4中解释过。
我不记得了。