Browse Source

1.切换云机 信令通道没有链接新的云机问题

huangxiaodong 1 year ago
parent
commit
07f1d76aa5

+ 1 - 2
创维盒子/双子星云手机/cloudPhone/websocket/webSocketManager.m

@@ -720,8 +720,7 @@ static webSocketManager *webSocketManagerInstance = nil;
     
     
     if(isNeedShowType){
-        HLog(@"hxd 镜像弹框 待处理")
-        //[self showImageViewRenewTipViewFun];
+        ksharedAppDelegate.isNeedShowImageNewType = YES;
     }
     
     //是否禁用文件传输 (1.3以及以上的镜像可以使用文件传输)

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

@@ -55,6 +55,9 @@ typedef void (^netWork_DidEndByOK) (NSInteger didSuc); // 0 fail 1 suc -1 处理
 - (void)tryReconnectFun;
 //音视频 链接返回-5的时候调用
 - (void)recreateHttpServiceFun;
+
+//断开链接
+- (void)disconnect;
 @end
 
 NS_ASSUME_NONNULL_END

+ 20 - 1
创维盒子/双子星云手机/connectDeviceManager/connectDeviceManager.m

@@ -128,6 +128,10 @@ static connectDeviceManager *connectDeviceManagerInstance = nil;
             //
             bool connected = [RaylinkProxy.sharedManager isSdnConnected];
             if(!connected || needReconnect){
+                self->didPingType = NO;
+                self->didRuiyunLinkType = NO;
+                self->_isPingOk = NO;
+                
                 weakSelf.curConnectDeviceState = DeviceConnectGetThridOK;
                 NSString *ipStr = weakSelf.DeviceThirdIdMod.data.ip;
                 [weakSelf startPingDeviceIp:ipStr];
@@ -621,6 +625,21 @@ static connectDeviceManager *connectDeviceManagerInstance = nil;
         return;
     }
 
-    [[webSocketManager shareInstance] opencommandChannelManagerrc_openURL];
+    //切换设备
+    if([[webSocketManager shareInstance].commandChannelManager rc_socketStatus] == RCSocketCloudPhoneStatusConnected
+       ||[[webSocketManager shareInstance].commandChannelManager rc_socketStatus] == RCSocketCloudPhoneStatusReceived){
+        
+        [[webSocketManager shareInstance].commandChannelManager rc_close];
+        [webSocketManager shareInstance].commandChannelManager = nil;
+        
+        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
+            [[webSocketManager shareInstance] opencommandChannelManagerrc_openURL];
+        });
+    }
+    else{//非第一次
+        [[webSocketManager shareInstance] opencommandChannelManagerrc_openURL];
+    }
+            
+    
 }
 @end