SDK 提供一系列网络测量接口和策略回调接口,业务通过设置测量阈值,达到按需加速的目的,同时 SDK 也提供加速兜底策略。当加速出现了重大异常,例如加速后出现断网,时延过大,加速负优化或加速效果远不及预期,SDK 会主动关闭加速和测速,让业务流量回源,防止因加速异常影响业务正常使用。
注意:
当 SDK 触发逃生 onAccException 回调后,会直接销毁加速通道,若业务使用 socks5代理发起的加速,业务需将相应的网络请求切回直连(不再使用代理)。
extension TestViewController {func initMpAcc {MpAccClient.shared.setupDatakey("xxx", uuid: "xxx")}func startMeasure() {//注册测速监听MpAccClient.shared.registerMeasureCallback(self)let measureConfig = MpMeasureConfig()/// 滑动窗口测量时间 (ms)config.time = 8000/// 时延阈值config.rtt = 60/// 丢包率阈值config.loss = 5/// 抖动阈值config.jitter = 15/// 快启动窗口时间config.quickTime = 2000/// 快启动时延阈值config.quickRtt = 80/// 测量回调频率config.interval = 1000/// 加速模式config.mode = .Redundant/// 开启加速MpAccClient.shared.startMeasure(measureConfig: measureConfig)}func stopMeasure() {//注销网络测量监听MpAccClient.shared.unRegisterAccCallback(self);//停止测速MpAccClient.shared.stopMeasure()}}extension TestViewController: MpMeasureCallback {/*** 建议开启双发* @param code 触发码 1:时延异常触发 2:丢包率异常触发 3:抖动异常触发*/func onStartMpAcc(code: Int) {appendLog("code:\\(code)")}/*** 建议关闭双发* @param code 触发码 1:单网卡触发 2:无优化触发 3:无网络触发 4:加速网卡和实际活跃网卡不一致* @msg 触发信息*/func onStopMpAcc(code: Int, msg: String) {appendLog("code:\\(code)")}/*** 当前网络状态无策略可用* @param code 触发码 1: 单moblie 2:单wifi 3: 无网 4:内部错误 -19: 拉起测速服务失败 -23: 测试地址无效 -25:plugin错误 -23:无效测速网 -11 认证错误* @param message 触发信息,若message不为空,则以message信息为主*/func onNoPolicy(code: Int, message: String?) {appendLog("code:\\(code) msg: \\(message ?? "")")}/*** 加速链路出现异常(此种情况sdk会主动关闭加速,切回正常模式)* @param errorCode 错误码* @param msg 错误信息*/func onAccException(errorCode: Int, msg: String) {appendLog("errorCode:\\(errorCode) msg: \\(msg)")}/*** 旁路udping rtt时延回调* @param type 种类(0:mobile 1:wifi 2:acc )* @param rtt 时延(ms) 丢包值为460*/func onRttChanged(type: Int, rtt: Int) {appendLog("type:\\(type) rtt:\\(rtt)")}/*** 聚合加速状态改变回调* @param state false:关闭 true:打开* @param code 0:正常开启 1:正常关闭 2:异常关闭*/func onAccStateChanged(state: Bool, code: Int) {appendLog("state:\\(state) code:\\(code)")}}