gpt4 book ai didi

android - android 设备连接到 WIFI 时不接收 GCM 消息

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:10:33 24 4
gpt4 key购买 nike

背景

我正在开发一个 Android 应用程序,它使用 Google Cloud Messaging(新的 GCM-API,未弃用的 C2DM)向所有已注册的设备发送同步消息。

由于我使用了官方文档,所以我的客户端实现的工作方式几乎与 Google 的示例完全相同。作为服务器,我使用在本地主机上运行的简单 PHP 脚本,其唯一任务是将发送到同步的消息发送到 GCM。

问题

只要我的设备通过 UMTS 等蜂窝网络连接到互联网,一切都正常(服务器向 GCM 发送通知 > GCM 一旦在线就将通知推送到设备 > 通知显示在设备上)。

但是当设备连接到 WIFI 时,将不再接收到 GCM 消息(尽管 Google 发送“成功”- 回复我的 PHP 服务器)。由于以下 answer我已经检查过我的路由器是否阻塞了某些端口,但它没有。

I had same problem of receiving push messages, even though GCM server replies "Success", because of wifi privacy. When I used my company wifi, I coudn't receive message in mobile, since they were blocked GCM server port.

有趣的是,我的实现已经可以使用 WIFI 了......

Google 在从 PHP 发送 GCM 消息时的回复:

{
"multicast_id":4677038582377051331,
"success":1,
"failure":0,
"canonical_ids":0,
"results":[{"message_id":"0:1406364179145476%6ce83c64d7d6c7e2"}]
}


非常疯狂的发现:

当我调用从智能手机发送我的 GCM 消息的 PHP 脚本时,问题自行解决了,因为一切正常。

提示

与此同时,这个“新的”GCM-API 也被弃用了!我正在使用 latest GCM-API (2015 年夏季出版)现在。自升级以来,我再也没有遇到过这个问题。新的 API,包括 InstanceId-API从我的角度来看,这是非常值得推荐的,据我所知,它比旧的 GCM 更稳定。

最佳答案

您需要打开端口 5228 - 5230 以使 GCM 正常工作。

检查以下内容:

注意:如果您的组织有限制进出 Internet 的流量的防火墙,您需要将其配置为允许与 GCM 的连接。要打开的端口是:5228、5229 和 5230。GCM 通常只使用 5228,但有时会使用 5229 和 5230。GCM 不提供特定的 IP。它经常更改 IP。我们建议不要使用 ACL,但如果您必须使用它们,请采取广泛的方法,例如此支持链接中建议的方法。

如果您的公司 Wifi 不允许这些端口,那么您将无法接收 GCM。

希望对你有帮助

关于android - android 设备连接到 WIFI 时不接收 GCM 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24969732/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com