【问题标题】:How to ensure GCM server is accessible from my device's network?如何确保可以从我的设备网络访问 GCM 服务器?
【发布时间】:2013-06-07 09:17:59
【问题描述】:

我正在测试 android 的 GCM 演示应用程序。 GCM 的第一步是向 GCM 服务器注册设备,即发送设备 ID 并获取注册密钥。但我正在一个有防火墙的网络上进行测试。现在我已经允许通过防火墙连接特定的 staic ip,即设备的 ip。但是我如何确保防火墙不会产生任何问题。是否有任何 url 或任何方式可以测试 GCM 服务器是否可访问。

目前我收到此错误。 从 GCM:可恢复的错误 (SERVICE_NOT_AVAILABLE)。

【问题讨论】:

  • 这可能是 this question 的副本。您需要打开相关端口。这仅在您的设备使用 WiFi 连接时相关。

标签: android google-cloud-messaging


【解决方案1】:

我会从重启手机开始(当我遇到这个问题时修复了多个问题)。我还将大致验证电话上的时间/日期是否正确。在线查看一些 GCM 代码时要小心,因为很多代码包含已弃用的函数。

之后,我将在我的 3G/4G 场景中实现如下所示的重试逻辑。

如果您使用 3G/4G:

500-599 范围内的错误(例如 500 或 503)表示 GCM 服务器在尝试处理请求时出现内部错误,或者服务器暂时不可用(例如,由于超时) .发件人必须稍后重试,遵守响应中包含的任何 Retry-After 标头。应用程序服务器必须实现指数退避。疑难解答

如果您使用的是 Wi-Fi:

注意:如果您的组织有防火墙限制进出 Internet 的流量,您需要将其配置为允许与 GCM 连接,以便您的 Android 设备接收消息。要打开的端口是:5228、5229 和 5230。GCM 通常只使用 5228,但有时会使用 5229 和 5230。GCM 不提供特定 IP,因此您应该允许防火墙接受到包含的所有 IP 地址的传出连接在 Google 的 ASN 15169 中列出的 IP 块中。

【讨论】:

    猜你喜欢
    • 2016-01-14
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 2017-05-01
    • 2021-08-20
    • 2019-11-04
    • 2013-09-14
    相关资源
    最近更新 更多