QNUploadServerNetworkStatus.m 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. //
  2. // QNUploadServerNetworkStatus.m
  3. // QiniuSDK
  4. //
  5. // Created by yangsen on 2020/11/17.
  6. // Copyright © 2020 Qiniu. All rights reserved.
  7. //
  8. #import "QNUtils.h"
  9. #import "QNNetworkStatusManager.h"
  10. #import "QNUploadServerNetworkStatus.h"
  11. @implementation QNUploadServerNetworkStatus
  12. + (QNUploadServer *)getBetterNetworkServer:(QNUploadServer *)serverA serverB:(QNUploadServer *)serverB {
  13. return [self isServerNetworkBetter:serverA thanServerB:serverB] ? serverA : serverB;
  14. }
  15. + (BOOL)isServerNetworkBetter:(QNUploadServer *)serverA thanServerB:(QNUploadServer *)serverB {
  16. if (serverA == nil) {
  17. return NO;
  18. } else if (serverB == nil) {
  19. return YES;
  20. }
  21. NSString *serverTypeA = [QNNetworkStatusManager getNetworkStatusType:serverA.host ip:serverA.ip];
  22. NSString *serverTypeB = [QNNetworkStatusManager getNetworkStatusType:serverB.host ip:serverB.ip];
  23. if (serverTypeA == nil) {
  24. return NO;
  25. } else if (serverTypeB == nil) {
  26. return YES;
  27. }
  28. QNNetworkStatus *serverStatusA = [kQNNetworkStatusManager getNetworkStatus:serverTypeA];
  29. QNNetworkStatus *serverStatusB = [kQNNetworkStatusManager getNetworkStatus:serverTypeB];
  30. return serverStatusB.speed < serverStatusA.speed;
  31. }
  32. @end