浏览代码

1.ping逻辑 ---处理中

huangxiaodong 11 月之前
父节点
当前提交
18b01b3d78

+ 1 - 0
创维盒子/双子星云手机/AppDelegate/AppDelegate.h

@@ -43,6 +43,7 @@
 
 @property(nonatomic,strong) DeviceThirdIdModel *DeviceThirdIdMod;//设备的第三方信息  连接时需要
 @property(nonatomic,strong) webRtcMsgModel *DeviceWebRtcMsgMod;//设备的第三方信息  连接时需要
+@property(nonatomic,strong) webrtcServerModel *bestWebrtcServerModel;//webrtc 最佳的链接机房
 
 @property (nonatomic, assign)BOOL isPlayerScreenLandscapeType;//拉流页面横屏状态
 @property (nonatomic, assign)BOOL supportScreenRotateType;

+ 2 - 2
创维盒子/双子星云手机/AppDelegate/PrefixHeader.pch

@@ -120,8 +120,8 @@ isBangsScreen; \
 //弃用 #define shareService   @"http://hiboxde.armclouding.com:7780/h5/#/pages/fileSharing/index?productType=Private-X&token="
 
 //生产环境 1.4.3 开始使用
-#define CloudService   @"http://hiboxde.androidscloud.com:7780"
-#define shareService   @"http://hiboxde.androidscloud.com:7780/h5/#/pages/fileSharing/index?productType=Private-X&token="
+//#define CloudService   @"http://hiboxde.androidscloud.com:7780"
+//#define shareService   @"http://hiboxde.androidscloud.com:7780/h5/#/pages/fileSharing/index?productType=Private-X&token="
 
 
 #define AESCODEKEEYY @"fvO8gAfNSr1tbdQe"

+ 12 - 6
创维盒子/双子星云手机/webRtc/model/webRtcMsgModel.h

@@ -12,21 +12,27 @@ NS_ASSUME_NONNULL_BEGIN
 @interface webRtcMsgSignallingModel : SuperModel //信令服务对象 (推流)
 @property (nonatomic, copy) NSString *port;//端口
 @property (nonatomic, copy) NSString *domainName;//地址
-@property (nonatomic, copy) NSString *ip;//需要用的ip
-@property (nonatomic, copy) NSString *room;//未用到
 @end
 
 @interface webRtcMsgTurnModel : SuperModel //turn服务对象 (ice)
 @property (nonatomic, copy) NSString *port;//端口
 @property (nonatomic, copy) NSString *domainName;//地址
-@property (nonatomic, copy) NSString *ip;//需要用的ip
-@property (nonatomic, copy) NSString *room;//未用到
+@end
+
+@interface webrtcServerModel : SuperModel //1.4.4 所有的信息
+@property (nonatomic, copy) NSString *signallingPort;//端口
+@property (nonatomic, copy) NSString *signallingDomainName;//地址
+@property (nonatomic, copy) NSString *signallingIp;//需要用的ip
+
+@property (nonatomic, copy) NSString *turnPort;//端口
+@property (nonatomic, copy) NSString *turnDomainName;//地址
+@property (nonatomic, copy) NSString *turnIp;//需要用的ip
 
 @property (nonatomic, assign) NSInteger delayedms;// ping的延时毫秒数
 
 @end
 
-@protocol webRtcMsgTurnModel;
+@protocol webrtcServerModel;
 @interface webRtcMsgDataModel : SuperModel
 
 @property (nonatomic, copy) NSString *sn;//SN
@@ -35,7 +41,7 @@ NS_ASSUME_NONNULL_BEGIN
 @property(nonatomic, strong) webRtcMsgSignallingModel*signalling;
 @property(nonatomic, strong) webRtcMsgTurnModel*turn;
 
-@property (nonatomic, strong) NSArray<webRtcMsgTurnModel>* turnList;
+@property (nonatomic, strong) NSArray<webrtcServerModel>* webrtcServerList;
 
 //自定义字段
 @property (nonatomic, assign) BOOL isPingDoneType;// 是否ping完成 所有IP

+ 4 - 0
创维盒子/双子星云手机/webRtc/model/webRtcMsgModel.m

@@ -15,6 +15,10 @@
 
 @end
 
+@implementation webrtcServerModel
+
+@end
+
 @implementation webRtcMsgDataModel
 
 @end

+ 38 - 11
创维盒子/双子星云手机/webRtc/webRtcPingManager/webRtcPingManager.m

@@ -11,7 +11,11 @@
 @interface webRtcPingManager ()<WHPingDelegate>
 {
     WHPingTester *whPingTester;
-    NSInteger pingIndex;//开始ping的第x个IP
+    NSInteger pingRoomIndex;//开始ping的第x个机房IP
+    
+    CGFloat allTimeInPingOneIP;//一个IP ping多少次的总延时
+    NSInteger pingOneIPNumber;//一个IPping多少次
+    NSInteger pingOneIPErrorNumber;//一个IP 错了多少次
 }
 @end
 
@@ -29,7 +33,7 @@
 - (instancetype)init {
 
     if (self = [super init]) {
-        pingIndex = 0;
+        pingRoomIndex = 0;
         //[self registeNotification];
     }
     return self;
@@ -39,12 +43,24 @@
 #pragma mark ---ping-----站点 判断是否是局域网
 - (void)startPingFun
 {
-    NSArray<webRtcMsgTurnModel>* turnList = ksharedAppDelegate.DeviceWebRtcMsgMod.data.turnList;
-    if (!turnList || turnList.count < pingIndex) {
-        <#statements#>
-    }
+    allTimeInPingOneIP = 0;
+    pingOneIPNumber = 0;
+    pingOneIPErrorNumber = 0;
     
+    NSString* roomInternetIp = @"";
+    NSArray<webrtcServerModel>* webrtcServerList = ksharedAppDelegate.DeviceWebRtcMsgMod.data.webrtcServerList;
+    if (!webrtcServerList || webrtcServerList.count > pingRoomIndex) {
+        webrtcServerModel *model = webrtcServerList[pingRoomIndex];
+        roomInternetIp = model.turnIp;
+    }
+    else{//完成遍历了
+        
+    }
     
+    //IP 出错
+    if(!roomInternetIp || roomInternetIp.length ==0){
+        return;
+    }
     
     if (self->whPingTester)
     {
@@ -76,27 +92,38 @@
     //if(error.code == 111 || time > 1000) //超时或者延时超过100ms,就要记录数据
     if(error != nil)
     {
-        [self didGetPingStateIsOK:NO];
+        pingOneIPErrorNumber += 1;
     }
     else if(time > 0){
-        [self didGetPingStateIsOK:YES];
+        allTimeInPingOneIP += time;
+        pingOneIPNumber +=1 ;
+        //[self didGetPingStateIsOK:YES];
         //test code
         //[self didGetPingStateIsOK:NO];
     }
     
+    if(pingOneIPErrorNumber == 3){
+        [self didGetPingStateIsOK:NO];
+    }
+    else if (pingOneIPNumber == 10){
+        [self didGetPingStateIsOK:YES];
+    }
+
 }
 
 - (void)didPingfialewithError:(NSError*)error
 {
     HLog(@" error  error: %@",error)
+    pingOneIPErrorNumber += 1;
+    
     [self didGetPingStateIsOK:NO];
 }
 
 -(void)didGetPingStateIsOK:(BOOL)isOk
 {
-    self.isPingOk = isOk;
-    [self->whPingTester stopPing];
-    self->whPingTester = nil;
+//    self.isPingOk = isOk;
+//    [self->whPingTester stopPing];
+//    self->whPingTester = nil;
 }
 
 @end