这个程序是将 本地的8086 端口作为代理服务器,代理上篇 golang HTTP实例 里面的8090端口
核心只有一个函数 httputil.NewSingleHostReverseProxy
两个服务同时运行
效果如下:
代理服务器访问 8086端口时候
访问原始的端口8090时候
苹果的消息推送是通过请求域名:https://api.push.apple.com 实现的,该域名解析结果为美国,这引发了两个问题:
1、接口请求时间长,性能低,而且容易请求超时报错
2、高峰期推送请求错误率升高
总体思路:增加一个美国代理服务器,通过代理服务器请求苹果消息推送服务
1、原来流程
2、现在流程
3、具体方案实施选择
选择一:proxy服务器,部署一个正向代理服务,提供push消息的正向代理,消息通过代理服务器送达苹果服务端
选择二:proxy服务器,独立实现、部署一个 标准的apns服务,负责 ios消息推送。将需要走美国节点的请求转发到该proxy节点
具体情况、具体分析,应思考的点:
问题一、苹果官方提供的SDK中,不支持设置代理服务器。官方SDK不适合更改,对以后系统更新不利
问题二、只有苹果的push服务需要代理,其他例如华为、小米、vivo不应走海外代理
问题三、代理安全性
问题四、代理方案下,有重试逻辑。 如何准确定义和判断失败, 可能会引起消息重复推送
问题五、实现简单、有效,正向代理方式:只需实现一个实例化对象方法,其他利用原始sdk即可。独立apns服务方式:需要实现一个apns服务,国内、国外均需服务部署,需要增加独立的开发和运营成本,另外还得改造调用服务,实现请求调度,优点服务独立、单一,具备一个单独微服务条件
github.com/sideshow/apns2
方法一: 修改SDK文件
第一步:设置环境变量
第二步:修改apns2.NewClient方法
方法二: 从新定义一个NewClient方法
找到设置页面的‘网络设置’进行设置即可! GO的设置选项非常丰富,既可以选择使用代理服务器与否,还可以自己选择配色方案,背景图片。设置页面使用半透明的效果,比较飘逸。 外观设置,内置8款主题和4张图片供你选择,还可以通过改变红、蓝、绿三色值来配色。 字体设置,可以更改字体,大小,链接下划线。 图片设置,图片质量(标准、低、无图),浏览模式(默认和分页),图片缓存。 下载设置,下载保存路径和下载提示方式(无、震动、铃声)。 网络设置,接入点选择和代理服务器开关。 其他:清除记录(访问历史、页面缓存、Cookie),恢复默认设置,关于。欢迎分享,转载请注明来源:夏雨云
评论列表(0条)