我一直在使用Google Cloud Messaging一段时间了。它连接到我们的Office wifi路由器时运行良好,接收每条消息都没有问题。当我将其切换到移动数据或其他WiFi网络时,它无法正常工作并停止接收消息。一段时间后,当我再次连接到我们的Office路由器时,所有消息都会一个接一个地出现。
服务器每分钟都在发送邮件,因此不存在服务器不活动的可能性。 GCM只能在特定的理想条件下工作吗?
修改 当我将其切换到移动数据或其他wifi网络时,它无法正常工作,即GCM工作一段时间后再停止接收消息。
答案 0 :(得分:1)
从以下部分的说明中https://developers.google.com/cloud-messaging/http#message-with-payload--data-message
注意:如果您的组织有防火墙限制流量 进出Internet,您需要将其配置为允许 与GCM连接,以便您的GCM客户端应用程序可以接收 消息。要打开的端口是:5228,5229和5230.通常是GCM 仅使用5228,但它有时使用5229和5230. GCM没有 提供特定的IP,因此您应该允许防火墙接受 到IP块中包含的所有IP地址的传出连接 在谷歌的ASN 15169中列出。
此外,根据https://stackoverflow.com/a/23784874/313113,连接将回退到端口443,但似乎只适用于某些Android版本:
我不确切知道Android版本引入了哪个端口443 后备,但它介于4.1.2(不工作)和4.3之间 (工作)。