HttpDNS iOS實現(xiàn)

項目要做HttpDNS,查閱了網(wǎng)上一些資料基本都是用了第三方服務(wù),阿里云,騰訊云等。
但是具體實現(xiàn)起來還是有些差異。對比之下,我們項目
1.IP后臺配置,通過get請求獲取。反觀阿里云是提供了對應(yīng)的接口,直接返給你最佳選擇,當(dāng)無返回的時候,可以走默認(rèn)的DNS解析,邏輯十分清晰。
2.通過get請求獲取的IP由運維手動配置,因此獲取的IP地址不保證能否連接,同時多個IP地址的連接時間也需要前端自己去ping,然后采用速度最快的進(jìn)行訪問。
3.請求為Http請求,Https的坑還未踩到.
4.看了很多實現(xiàn)都是新建NSURLProtocol子類去處理請求。但實際我覺得意義不大,都是攔截請求,可以在項目封裝的網(wǎng)絡(luò)框架里直接實現(xiàn)就好了,如果項目里還要其他需要自定義的請求反而會混淆麻煩。同時在NSURLProtocol還要做請求IP的操作,我覺得反而是拆分出請求IP,選取最優(yōu)的這一個操作為一個工具類來實現(xiàn)會更好.

最終的實現(xiàn)流程圖.


最后實現(xiàn)的Demo

一些實現(xiàn)參考:
HttpDNS功能說明及實現(xiàn)
可能是最全的iOS端HttpDns集成方案
iOS - 阿里云 HTTPDNS iOS 植入
解決「 HTTPDNS + HTTPS 」的證書校驗問題
iOS應(yīng)用接入HTTPDNS服務(wù)的架構(gòu)設(shè)計方案

ping的一些Demo
https://github.com/Lede-Inc/LDNetDiagnoService_IOS
iOS實現(xiàn)Ping命令

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容