gpt4 book ai didi

android - GCM : how to avoid throttling

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:56:16 24 4
gpt4 key购买 nike

我的 Android 系统需要向平板电脑应用程序发送频繁更新(信息亭始终连接到 wifi 和电源插头)。
GCM-HTTP (//developer.android.com/google/gcm/http.html) 工作正常,但在某些情况下,单个设备可能会收到许多通知,从而触发此处描述的众所周知的节流问题 (//developer. android.com/google/gcm/adv.html#throttling)。这是一个问题,因为通知中的有效负载对系统非常重要。防止这种情况的最佳解决方案是什么?

  • 在服务器中实现一项服务,将通知分组到同一设备并以有限的频率发送。
  • 使用 XMPP 服务。我想使用 GCM-XMPP (//developer.android.com/google/gcm/ccs.html),但你需要在白名单中签名,所以我认为不是每个人都可以使用它。作为替代方案,我应该分别按照此处 ( Android and XMPP: Currently available solutions ) 和此处 ( Better Way to implement the chat application using XMPP on Android? ) 的建议使用 aSmack 或 Quickblox?
  • 按照 (//thinkandroid.wordpress.com/2010/03/27/incorporating-socket-programming-into-your-applications/) 中的说明实现基本套接字连接?在这种情况下,我必须考虑连接暂时丢失的可能性吗?

解决方案:我找到了我的问题的解决方案,即 XMPP 协议(protocol)。一开始我在平板应用中实现了aSmack,并配置了一个在本地运行的eJabberd服务器。实现非常简单。几周后,我收到了一封来自 Google 的关于 GCM-XMPP 的邮件,它可以更快地嵌入到应用程序中并且运行得非常好!

最佳答案

也许将 time_to_live 设置为 0。

来自 http://developer.android.com/google/gcm/adv.html :

“为消息指定到期日期的另一个优点是,GCM 永远不会限制 time_to_live 值为 0 秒的消息。换句话说,GCM 将保证最大努力处理必须“现在或永远不会”传递。请记住,time_to_live 值为 0 意味着无法立即传递的消息将被丢弃。但是,由于此类消息永远不会被存储,因此这为发送通知提供了最佳延迟。”

关于android - GCM : how to avoid throttling,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20325898/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com