如何确保可以从我的设备网络访问GCM服务器?

时间:2013-06-07 09:18:00

标签: android google-cloud-messaging

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

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

1 个答案:

答案 0 :(得分:0)

我首先重启手机(遇到这个问题时修复了多个问题)。我还会粗略地在手机上验证时间/日期是否正确。在线查看一些GCM代码时要小心,因为很多代码都包含已弃用的函数。

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

如果您使用的是3G / 4G:

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

如果您使用的是Wi-Fi:

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