美文网首页网络
HttpDNS iOS实现

HttpDNS iOS实现

作者: 3a169b0787bc | 来源:发表于2018-12-21 15:30 被阅读48次

    项目要做HttpDNS,查阅了网上一些资料基本都是用了第三方服务,阿里云,腾讯云等。
    但是具体实现起来还是有些差异。对比之下,我们项目
    1.IP后台配置,通过get请求获取。反观阿里云是提供了对应的接口,直接返给你最佳选择,当无返回的时候,可以走默认的DNS解析,逻辑十分清晰。
    2.通过get请求获取的IP由运维手动配置,因此获取的IP地址不保证能否连接,同时多个IP地址的连接时间也需要前端自己去ping,然后采用速度最快的进行访问。
    3.请求为Http请求,Https的坑还未踩到.
    4.看了很多实现都是新建NSURLProtocol子类去处理请求。但实际我觉得意义不大,都是拦截请求,可以在项目封装的网络框架里直接实现就好了,如果项目里还要其他需要自定义的请求反而会混淆麻烦。同时在NSURLProtocol还要做请求IP的操作,我觉得反而是拆分出请求IP,选取最优的这一个操作为一个工具类来实现会更好.

    最终的实现流程图.


    最后实现的Demo

    一些实现参考:
    HttpDNS功能说明及实现
    可能是最全的iOS端HttpDns集成方案
    iOS - 阿里云 HTTPDNS iOS 植入
    解决「 HTTPDNS + HTTPS 」的证书校验问题
    iOS应用接入HTTPDNS服务的架构设计方案

    ping的一些Demo
    https://github.com/Lede-Inc/LDNetDiagnoService_IOS
    iOS实现Ping命令

    相关文章

      网友评论

        本文标题:HttpDNS iOS实现

        本文链接:https://www.haomeiwen.com/subject/ubkckqtx.html