12345678910111213141516171819202122232425262728293031323334353637383940 |
- //
- // QNUploadServerNetworkStatus.m
- // QiniuSDK
- //
- // Created by yangsen on 2020/11/17.
- // Copyright © 2020 Qiniu. All rights reserved.
- //
- #import "QNUtils.h"
- #import "QNNetworkStatusManager.h"
- #import "QNUploadServerNetworkStatus.h"
- @implementation QNUploadServerNetworkStatus
- + (QNUploadServer *)getBetterNetworkServer:(QNUploadServer *)serverA serverB:(QNUploadServer *)serverB {
- return [self isServerNetworkBetter:serverA thanServerB:serverB] ? serverA : serverB;
- }
- + (BOOL)isServerNetworkBetter:(QNUploadServer *)serverA thanServerB:(QNUploadServer *)serverB {
- if (serverA == nil) {
- return NO;
- } else if (serverB == nil) {
- return YES;
- }
-
- NSString *serverTypeA = [QNNetworkStatusManager getNetworkStatusType:serverA.host ip:serverA.ip];
- NSString *serverTypeB = [QNNetworkStatusManager getNetworkStatusType:serverB.host ip:serverB.ip];
- if (serverTypeA == nil) {
- return NO;
- } else if (serverTypeB == nil) {
- return YES;
- }
-
- QNNetworkStatus *serverStatusA = [kQNNetworkStatusManager getNetworkStatus:serverTypeA];
- QNNetworkStatus *serverStatusB = [kQNNetworkStatusManager getNetworkStatus:serverTypeB];
- return serverStatusB.speed < serverStatusA.speed;
- }
- @end
|