class YSNetManager: MoyaProvider <YSNetTargetType> {
static let sharedInstance: YSNetManager = YSNetManager()
init() {
// 過濾證書贸宏,指定域名
// DefaultTrustEvaluator 默認(rèn)策略,只有合法證書才能通過驗(yàn)證
// RevocationTrustEvaluator 對注銷證書做的一種額外設(shè)置
// PinnedCertificatesTrustEvaluator 證書驗(yàn)證模式磕洪,代表客戶端會(huì)將服務(wù)器返回的證書和本地保存的證書中的 所有內(nèi)容 全部進(jìn)行校驗(yàn)吭练,如果正確,才繼續(xù)執(zhí)行析显。
// PublicKeysTrustEvaluator 公鑰驗(yàn)證模式鲫咽,代表客戶端會(huì)將服務(wù)器返回的證書和本地保存的證書中的
// DisabledTrustEvalutor 該選項(xiàng)下驗(yàn)證一直都是通過的,無條件信任谷异。
// CompositeTrustEvalutor 自定義驗(yàn)證分尸,需要返回一個(gè)布爾類型的結(jié)果
let serverTrustManager = ServerTrustManager(allHostsMustBeEvaluated: false,
evaluators: ["xx.xx.xx": DisabledTrustEvaluator()])
let configuration = URLSessionConfiguration.default
configuration.headers = .default
let session = Session(configuration: configuration,
startRequestsImmediately: false,
serverTrustManager: serverTrustManager)
// 設(shè)置最大請求數(shù)量
session.session.configuration.httpMaximumConnectionsPerHost = 10
// 開啟 MPTCP,允許在一條 TCP 鏈路中建立多個(gè)子通道歹嘹,因此 MPTCP 可以讓用戶在切換網(wǎng)絡(luò)環(huán)境的時(shí)候箩绍,不需要重新建立 TCP 鏈接;
// none :不啟用尺上,默認(rèn)選項(xiàng)
// handover :優(yōu)先考慮的是鏈接的可靠性材蛛。只有在 Wi-Fi 信號不好的時(shí)候,才會(huì)走 Cellular
// interactive :優(yōu)先考慮的是鏈接的低延時(shí)尖昏。系統(tǒng)會(huì)看 Wi-Fi 快還是 Cellular 快仰税。如果 Cellular 比 Wi-Fi 快,哪怕此時(shí) Wi-Fi 信號很好抽诉,系統(tǒng)也會(huì)把流量切到 Cellular 鏈路
// aggregate :在這種模式下陨簇,Wi-Fi 和 Cellular 會(huì)同時(shí)起作用。如果 Wi-Fi 是 1G 帶寬,Cellular 也是 1G 帶寬河绽,那么你的設(shè)備就能享受 2G 帶寬(只能在開發(fā)者模式下使用)
session.session.configuration.multipathServiceType = .handover
super.init(session: session,
plugins: [YSNetPlugin()])
}
}
但是一般情況下不建議將 HTTPS 證書驗(yàn)證關(guān)閉