要调用 JPush REST API 推送消息,但服务器有网络限制,客户端 App 连接的还是专线网络,这要怎么办呢?

一、推送服务器的网络有限制(如内网等),如何处理

如果你要调用 JPush REST API 推送消息,但服务器有网络限制(内网、防火墙),需要开通端口或绑定专门的 IP,应该怎么处理呢?

1.1 需要开通的端口说明

  • 使用 V3 接口(HTTPS),要开通端口 443 端口(https 服务默认走 443 端口)

  • 使用是 V2 接口(HTTP)(该接口已不维护,不建议使用),要开通 80 端口

1.2 如何绑定 IP

极光的 REST API 有很多服务器,IP 是域名动态分配的,所以每次调用 API 时,访问到的 IP 地址都可能不同。所有的 REST API 均 只支持 https 访问,也就是说 只支持以域名方式访问,不支持以 IP 的形式访问,即 https://113.31.138.48/v3/push 这种方式是无法成功的!

极光有几个 IP 地址基本固定,开发者可以考虑对这几个 IP 开通 防火墙白名单或者用 hosts 文件绑定 :

  • 119.3.228.52

  • 121.36.6.165

  • 139.9.141.89

除此之外,你自己对极光域名进行 ping 解析到的 IP 地址也可以加上。(注意不要 ping 成了官网的域名,是 REST API 的域名

注:以上 IP 地址会尽可能保持不变,但不保证一定不变;如果你的 host 绑定了某个 IP 地址,而这个 IP 地址因某些原因有变更(下线),本文将会更新,非极光 VIP 合作客户,我们不会另行知会,请知悉。

1.3 请求超时如何解决

当遇到调 API 超时、无法访问极光服务器时,排查问题可以采用以下方法,并提供你的错误 log 、你请求推送的服务端 IP 地址与下述操作结果给官方人员:

  • 直接 curl 推送的结果,示例参考文档

  • nsloookup 域名

  • ping 域名

  • mtr 域名

  • tracepath 或者 traceroute 域名

  • telnet 域名 端口

对上述命令的相关说明:

  • 「域名」是你请求有异常的极光的域名,推送的域名是 api.jpush.cn;别名标签相关的域名是 device.jpush.cn;获取统计数据相关的域名是 report.jpush.cn,其他域名可参考极光文档。如果你调用的是北京的域名,需要对应更换为 bjapi.push.jiguang.cn

  • 「端口」与你使用的是 V2 还是 V3 端口有关,一般是 443 端口

  • 如果用的是 Windows 系统,无法直接使用 mtr 命令,可以下载这个包WinMTR-v092.zip进行操作

二、客户端 App 连公司内网,怎么与极光的服务器保持长连接?

2.1 Android SDK 使用的端口

在内网中,客户端使用极光推送需要服务器开放下列端口限制,用于 JPush 的登录注册及保持推送长连接:

  • 19000

  • 3000-3020

  • 7000-7020

  • 8000-8020

2.2 Android SDK 使用的域名

一般常见是:设备使用的是 ** 专线卡,需要将 SDK 的域名加白名单,以下域名不保证不改变:

  • s.jpush.cn(端口为19000)

  • sis.jpush.io(端口为19000)

  • easytomessage.com (端口为19000)

  • im64.jpush.cn

  • stats.jpush.cn

  • tsis.jpush.cn

  • bjuser.jpush.cn

  • ce3e75d5.jpush.cn(Jcore 2.1.6 新增)

  • _im64._tcp.jpush.cn(走 srv 服务,加不了也可以不加)

  • _psis._udp.jpush.cn(走 srv 服务,加不了也可以不加)

2.3 iOS 通知所需端口

接收 iOS 的 APNS 通知需要与 Apple 的服务器的连接,通过 tcp 的 5223 端口,确认你网络的对应端口是否可用,可通过下列命令来确认:


telnet 1-courier.push.apple.com 5223

2.4 其他方案

开通 VIP 服务:极光有提供企业 sis 方案。

开通方式:联系商务了解详情,微信号:jiguangkf,电话:400-888-2376,邮箱:sales@jiguang.cn

三、完全使用内网的方案

完全内网隔离很难完全使用,尤其是 ios 系统消息推送依赖苹果的接口。没有外网是无法推送到 ios 系统的。如果数据要求隐私性较高,可以咨询商务考虑私有云服务,具体信息可以咨询商务后在确认。

私有云是在你们的内网环境部署一套小型 push 系统,对于你们都是内网环境比较适合,至于 ios 系统针对这种情况可能要到时候在咨询相关技术支持才可以获得最终的结论。

关于私有云收费与洽谈问题,联系商务:商务电话:400-888-2376;商务微信号:jiguangkf;开发者商务邮箱:sales@jiguang.cn。提供如下信息能更快得到联系:

  • 公司名称:

  • 地区(我们是分区域进行联系的,如果是有总公司、分公司,那么提供您将会付费的公司所在区域):

  • 您贵姓:× 先生/女士

  • 联系方式(为迅速联系,请提供您的电话):

  • 您的需求(所需开通的服务,需要咨询的内容):

  • 您的应用是什么类型的,有没有上线,应用的 Appkey:


如果对你有帮助,点个赞呗 ლ(╹◡╹ლ)

不吹不黑,关注「常见问题」专栏可以解决你 90% 的问题 (ノ◕ω◕)ノଘ_ଘ

如果还有你想知道的问题没有总结方案,来评论区跟我交流交流吖