huangxiaodong 11 months ago
parent
commit
d745b3a95f

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

@@ -181,6 +181,9 @@ UIKIT_EXTERN NSString *const Const_cloudPhone_Model_Open;
 /*云手机设置分辨率 1:720  2:1080 0:未设置*/
 UIKIT_EXTERN NSString *const Const_cloudPhone_cur_resolution;
 
+/*记录当前webrtc的最佳机房(ping时间最短)*/
+UIKIT_EXTERN NSString *const Const_best_webRtc_IPRoom;
+
 @end
 
 NS_ASSUME_NONNULL_END

+ 3 - 0
创维盒子/双子星云手机/AppDelegate/Config/Const.m

@@ -177,4 +177,7 @@ NSString *const Const_cloudPhone_Model_Open = @"cloudPhone_Model_Open";
 
 /*云手机设置分辨率 1:720  2:1080 0:未设置*/
 NSString *const Const_cloudPhone_cur_resolution = @"cloudPhone_cur_resolution";
+
+/*记录当前webrtc的最佳机房(ping时间最短)*/
+NSString *const Const_best_webRtc_IPRoom = @"best_webRtc_IPRoom";
 @end

+ 15 - 0
创维盒子/双子星云手机/AppDelegate/SceneDelegate.m

@@ -108,6 +108,16 @@
         
         // 初始化数据库
         [self initBrowserWindow];
+        
+        //查询当前的最近webrtc机房
+        NSDictionary *dict = [HWDataManager getObjectWithKey:@"Const_best_webRtc_IPRoom"];
+        if(dict){
+            webrtcServerModel *model = [[webrtcServerModel alloc] initWithDictionary:dict error:nil];
+            if(model && model.turnIp){
+                ksharedAppDelegate.bestWebrtcServerModel = model;
+            }
+        }
+        
         // 加载主页面
         [self enterMainVCFromScene];
         //
@@ -345,6 +355,11 @@
         
         if(curModel && curModel.status == 0){
             ksharedAppDelegate.DeviceWebRtcMsgMod = curModel;
+            
+            if(!ksharedAppDelegate.bestWebrtcServerModel){
+                webrtcServerModel *model = curModel.data.webrtcServerList.firstObject;
+            }
+            
             [[webRtcManager shareManager] beginToLinkWebRtcFun];
             [[webRtcPingManager shareManager] startPingFun];
         }

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

@@ -28,7 +28,7 @@ NS_ASSUME_NONNULL_BEGIN
 @property (nonatomic, copy) NSString *turnDomainName;//地址
 @property (nonatomic, copy) NSString *turnIp;//需要用的ip
 
-@property (nonatomic, assign) NSInteger delayedms;// ping的延时毫秒数
+@property (nonatomic, assign) CGFloat delayedms;// ping的延时毫秒数
 
 @end
 

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

@@ -39,6 +39,11 @@
     return self;
 }
 
+- (void)startPingNextFun
+{
+    pingRoomIndex++;
+    [self startPingFun];
+}
 
 #pragma mark ---ping-----站点 判断是否是局域网
 - (void)startPingFun
@@ -54,11 +59,12 @@
         roomInternetIp = model.turnIp;
     }
     else{//完成遍历了
-        
+        return;
     }
     
     //IP 出错
     if(!roomInternetIp || roomInternetIp.length ==0){
+        [self startPingNextFun];
         return;
     }
     
@@ -102,10 +108,10 @@
         //[self didGetPingStateIsOK:NO];
     }
     
-    if(pingOneIPErrorNumber == 3){
+    if(pingOneIPErrorNumber >= 3){
         [self didGetPingStateIsOK:NO];
     }
-    else if (pingOneIPNumber == 10){
+    else if (pingOneIPNumber >= 9){
         [self didGetPingStateIsOK:YES];
     }
 
@@ -121,9 +127,22 @@
 
 -(void)didGetPingStateIsOK:(BOOL)isOk
 {
-//    self.isPingOk = isOk;
-//    [self->whPingTester stopPing];
-//    self->whPingTester = nil;
+    [self->whPingTester stopPing];
+    self->whPingTester = nil;
+    
+    if (allTimeInPingOneIP > 0) {
+        CGFloat averageDelayedms = allTimeInPingOneIP/pingOneIPNumber;
+        
+        webrtcServerModel*preBestModel = ksharedAppDelegate.DeviceWebRtcMsgMod;
+        
+        NSArray<webrtcServerModel>* webrtcServerList = ksharedAppDelegate.DeviceWebRtcMsgMod.data.webrtcServerList;
+        if (!webrtcServerList || webrtcServerList.count > pingRoomIndex) {
+            webrtcServerModel *model = webrtcServerList[pingRoomIndex];
+            model.delayedms = averageDelayedms;
+            
+            if([model.turnIp isEqualToString:preBestModel.turnIp];)
+        }
+    }
 }
 
 @end