【问题标题】:GCM Push messages being kept on the server until a new one arrivesGCM Push 消息一直保存在服务器上,直到有新消息到达
【发布时间】:2013-08-17 08:39:22
【问题描述】:

我正在使用具有最新 Google Play 服务版本的 Google Cloud Messaging 开发应用。

如果我关闭设备的网络连接,在我无法访问 Internet 期间应该收到的所有消息都会存储在服务器中,并且在我关闭其中一个时,直到有新消息到达时我才会收到它们我的网络连接重新打开。

所以,如果我在晚上收到 20 条新消息,当我关闭 WiFi/3G 时,当我早上打开 WiFi 时,我没有收到任何消息,当第一条新消息到达时,我收到 21 条推送立即通知。

问题是,那么……有什么办法可以解决这个问题吗?这是我的实施问题还是这是预期的行为,我应该找到一些解决方法?

谢谢!

小修改:我不会一次收到 21 条通知,因为我发送的推送消息是可折叠的,但无论如何,在新消息到来之前我不会收到折叠的消息。 p>

【问题讨论】:

  • 你想处理这 20 条消息还是什么?
  • 不,我想在早上再次打开 WiFi 时接收,而无需等待新的 WiFi 到达然后将它们全部放在一起。现在,如果我早上没有收到任何消息,那么晚上 20 条消息就会陷入某种推送消息的边缘:-)
  • 谢谢 Pavlos,我认为这不是完全同样的问题,无论如何,我希望有某种解决方法,因为,你知道,很多应用程序都使用推送通知我早上收到他们的消息,所以要么是我的实现有问题,要么有某种解决方法......无论如何,谢谢你的链接!
  • 可能是您当前的实现有问题,我使用了推送通知,一旦我连接互联网它们就会到达,您可以发布代码来看看吗?

标签: java android push google-cloud-messaging


【解决方案1】:

这似乎是消息负载上的time_to_live 参数问题。同样引用Android Docs

time_to_live:如果设备处于离线状态,消息应在 GCM 存储中保留多长时间(以秒为单位)。(默认生存时间为 4 周)。

祝你好运!

【讨论】:

  • 谢谢!你是对的,它 time_to_live 参数的问题。我手动将其设置为 2419200 并且似乎存在错误,因为我刚刚完全删除了该参数,现在它正在工作。感谢您的提示!
  • is collapse_key 对于所有消息都是相同的,或者对于所有所有消息都是不同的,因为我尝试将所有消息都设置为相同,然后我只收到最后一条消息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-18
  • 1970-01-01
  • 2015-03-20
  • 2012-01-13
  • 2018-10-01
相关资源
最近更新 更多