Android 推送通知:Google Play 服务如何连接到 Google Server
Posted
技术标签:
【中文标题】Android 推送通知:Google Play 服务如何连接到 Google Server【英文标题】:Android Push notification: How does Google Play Services Connect to Google Server 【发布时间】:2014-09-22 22:29:37 【问题描述】:我正在尝试深入了解 android 推送通知。
根据这个问题, How does push notification technology work on Android?
Google Play 服务维护着与 Google 服务器之间的有效 TCP 连接。我找不到这个 TCP 连接。
我使用了一个名为 NetStat Plus 的应用程序来枚举 TCP 连接,这就是我想出的:
我有很多支持 GCM 的应用,但这里似乎没有一个连接到 Google 服务器。
【问题讨论】:
我也安装了这个应用程序,我确实看到了很多从谷歌播放过程中建立的连接,所以我不知道为什么你没有从你的设备上看到它们......无论如何 - 你可以确保存在这种联系。没有任何“隐藏的魔法”可以在没有任何连接的情况下向设备推送消息。 我明白了。我只是想看看这样的联系存在。 这可能不是您要找的answer,只是看看。其实我指的是你的问题:How does push notification technology work on Android?
【参考方案1】:
好的,首先不要选择选项卡“ALL”,选择“ESTABLISHED”以摆脱当前不可用的连接。这是我设备的屏幕截图:
有一个名为“system”的条目,其地址为 IP 173.194.65.95。如果您执行如下所示的 whois 查询
您会看到这是一个 Google 服务器。尝试在浏览器中输入 IP(因此不允许在 IP 地址上设置链接)。
但系统连接并不总是存在。当您查看 u0_a19 时,您还会看到 Google 服务器。此连接始终存在,并且可能在您的系统上具有不同的名称。在您的屏幕截图中,我看到 u0_a7
指向 Google 服务器。
当我在 terminal window 中执行 ps | grep u0_a19
时,我得到:
com.google.android.gms
是Google Play Services,因此似乎有一个共享用于不同目的的连接,其中一个可能是推送通知。
【讨论】:
【参考方案2】:像这样建立一个“实验室”:
互联网 你的路由器 你的电脑 你的 Android 设备。
Create an "ad-hoc" wi-fi connection,因此您的电脑将充当接入点并连接到互联网。
将 Android 设备连接到新连接,而不是直接连接到路由器。
使用 TcpDump 或 Wireshark 之类的工具来监控从 Google Play 和您的手机传递的消息。
如果你想root你的手机,更多的选项被列出here。
【讨论】:
以上是关于Android 推送通知:Google Play 服务如何连接到 Google Server的主要内容,如果未能解决你的问题,请参考以下文章
如果应用是从 Google Play 商店下载的,Android 应用是不是只会收到推送通知? (反应原生博览会)
如何在 java Play Framework 中发送推送通知
如何在 iOS 上禁用 Google Play 游戏服务中的推送通知权限?