【问题标题】:Single device suddenly stopped getting C2DM pushes from my server单个设备突然停止从我的服务器接收 C2DM 推送
【发布时间】:2012-04-18 09:26:45
【问题描述】:

我们有一个工作应用和服务器,它使用 C2DM 将消息推送到 Android 设备。

两天前,我们的一台测试设备停止接收来自服务器的推送。

  • 服务器发送到的 deviceRegistrationId 似乎已更新且正确,设备具有网络连接,并且使用 Gtalk 等 C2DM 的谷歌应用程序在其上正常工作。

  • 服务器从 Google 的 C2DM 服务器获得成功响应,正确响应为“id=0:133467...61+ac67f...66

  • 在此之前设备已正确接受推送。

  • 我们的应用已投放市场,每天都有很多用户使用,我们还没有收到任何类似的用户投诉(这并不意味着我们的某些用户不会遇到这种情况)

有什么想法可以进一步检查以了解这一点吗?

有没有办法使用从 C2DM 服务器收到的 id 来检查特定消息发生了什么?

谢谢。

【问题讨论】:

    标签: android push-notification android-c2dm


    【解决方案1】:

    我不知道有任何报告可以跟踪消息。

    我要检查的第一件事是,您要向其发送消息的注册 ID 仍然是设备正在使用的注册 ID - 如果它们不匹配,可能会导致您看到的内容。

    我看到一些设备突然停止接收 C2DM 消息。在我们的例子中,重启设备通常会修复它。

    我看到的另一种情况是特定网络上的设备不接收消息(特别是某些 wifi 网络)。

    【讨论】:

    • 感谢 Ollie,我检查了保存在我们应用程序首选项中的 deviceRegistrationId,它与服务器发送到的相同。重启设备也没有用。设备使用的网络没有变化,我们已经在几个不同的 WiFi 网络上进行了尝试(设备没有 3G 计划)
    • 为了排除它,我会尝试将该设备接入 3G 网络。我们到了一个地步,我们总是在 wifi 和 3G 上进行测试,而一些 beta 测试人员 wifi 网络 C2DM 消息从未到达 - 这提醒了应用程序有一个 C2DM 失败的备份策略是多么重要(例如慢轮询)跨度>
    • 我会尝试的其他方法是在设备上请求另一个注册 ID。它可能无济于事,但它排除了这个问题。
    • 我故意不想重新注册设备,直到我们弄清楚这一点,因为用户将无法做到这一点。 +1 关于 3G 建议,我们会尝试,但我们没有 3g 计划的用户可能会遇到这些问题,这听起来不太好
    • 3g 没有解决这个问题......我们可以尝试解决这个问题的任何其他想法吗?我开始考虑让每台设备都向服务器请求 ping,如果一个小时内没有到达,请重新注册...我真的很想避免在我的服务器和用户的设备上出现这种过载.
    【解决方案2】:

    身份验证密钥会在 C2DM 服务器上频繁更改每次都获取密钥?

    【讨论】:

    • 感谢 Bhaskar,但我们的服务器能够处理密钥更改,服务器部分工作正常,它能够将消息推送到我们的设备。问题在于设备上的 deviceRegistrationId 以某种方式未刷新。我们的客户端也能够接受来自 C2DM 的新 onRegistered 调用以刷新到 deviceRegistrationId,但我们在此设备上没有收到任何消息。
    • auth key 不会经常变化。它实际上很少更改,尽管许多目前正在到期。
    【解决方案3】:

    Google 正在更改其客户端登录过期政策。 他们正在新标头中发送数据以更新我想要的注册,您需要更改代码才能使其正常工作。

    详情如下:http://android-developers.blogspot.com/2012/04/android-c2dm-client-login-key.html?m=1

    【讨论】:

    • 感谢机器,客户端登录过期仅在服务器端,我们的服务器在获取 Update-Client-Auth 标头时正确更新客户端登录。我们的问题出在客户端,可能是 deviceRegistrationID。
    猜你喜欢
    • 2020-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多