在 Android 上的代理后面接收 FCM (GCM)
Posted
技术标签:
【中文标题】在 Android 上的代理后面接收 FCM (GCM)【英文标题】:Receiving FCM (GCM) behind proxy on Android 【发布时间】:2020-07-15 21:02:42 【问题描述】:我们有一款应用使用 FCM(前 GCM)在 android 设备上推送消息和通知。
我们有一个用例,应用程序将无法开放访问 Google Play 服务,因为它将部署在公司网络上 - 嗯,它是一个“除了具有固定 IP 地址和端口的固定服务器之外的一切都关闭”防火墙。不允许直接连接到这些服务,但我们可以提供自己的 http/s 或 socks 代理来访问我们想要的任何内容。
根据我对 SO 的最新知识和搜索,即使您在 android 上指定了代理,该代理也只会在您的应用设置为使用它时使用(没问题),但 Google Play 服务和 Firebase 只会忽略代理设置。
这有改变吗? Firebase/FCM/Google play服务可以通过Android中指定的代理运行吗?如果是这样,来自哪个 android 版本?
谢谢你, 尼古拉斯
【问题讨论】:
【参考方案1】:这是来自 firebase 支持的最新信息(简短回答:否)
" 不幸的是,Firebase 云消息传递目前并未设计为支持代理,也不会尝试解决所有网络状况。另一种方法是将 FCM 列入白名单,根本不通过代理。您应该将 Google 的 ASN 15169 中列出的 IPv4 和 IPv6 块中的所有 IP 地址列入白名单。有关 FCM 端口的更多信息,请参阅此文档。 https://firebase.google.com/docs/cloud-messaging/concept-options#ports_and_your_firewall "
如果有人有解决方法的想法,请随时分享:) 谢谢, 尼古拉斯
【讨论】:
以上是关于在 Android 上的代理后面接收 FCM (GCM)的主要内容,如果未能解决你的问题,请参考以下文章
Cordova Android 应用程序不接收来自服务器端的 FCM 通知