Ver código fonte

1.计算器1.2.6.1同步bug

huangxiaodong 1 ano atrás
pai
commit
21f18f413d

BIN
创维盒子/RayProxy/libzerotier-one.a


+ 4 - 4
创维盒子/双子星云手机.xcodeproj/project.pbxproj

@@ -2494,7 +2494,7 @@
 				ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES;
 				CODE_SIGN_IDENTITY = "Apple Development";
 				CODE_SIGN_STYLE = Automatic;
-				CURRENT_PROJECT_VERSION = 4;
+				CURRENT_PROJECT_VERSION = 1;
 				DEVELOPMENT_TEAM = 6SV76WTUUR;
 				FRAMEWORK_SEARCH_PATHS = (
 					"$(inherited)",
@@ -2552,7 +2552,7 @@
 					"$(PROJECT_DIR)/双子星云手机/Vendor/UDP/RayProxy",
 					"$(PROJECT_DIR)/RayProxy",
 				);
-				MARKETING_VERSION = 1.2.5.1;
+				MARKETING_VERSION = 1.2.6.1;
 				PRODUCT_BUNDLE_IDENTIFIER = com.armcloud.privacy.x.box;
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				PROVISIONING_PROFILE_SPECIFIER = "";
@@ -2573,7 +2573,7 @@
 				ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES;
 				CODE_SIGN_IDENTITY = "Apple Development";
 				CODE_SIGN_STYLE = Automatic;
-				CURRENT_PROJECT_VERSION = 4;
+				CURRENT_PROJECT_VERSION = 1;
 				DEVELOPMENT_TEAM = 6SV76WTUUR;
 				FRAMEWORK_SEARCH_PATHS = (
 					"$(inherited)",
@@ -2631,7 +2631,7 @@
 					"$(PROJECT_DIR)/双子星云手机/Vendor/UDP/RayProxy",
 					"$(PROJECT_DIR)/RayProxy",
 				);
-				MARKETING_VERSION = 1.2.5.1;
+				MARKETING_VERSION = 1.2.6.1;
 				PRODUCT_BUNDLE_IDENTIFIER = com.armcloud.privacy.x.box;
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				PROVISIONING_PROFILE_SPECIFIER = "";

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

@@ -85,7 +85,7 @@
     
     
     //启动后台保活
-    [AudioSessionObject shareManager];
+    //[AudioSessionObject shareManager];
     [self MonitorNetworkChangesFun];
     
 #ifdef DEBUG

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

@@ -41,6 +41,7 @@
 //网络相关
 #import "netWorkManager.h"
 #import "newWorkInterface.h"
+#import "cachesFileManager.h"
 
 #define globalBlock(block) dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0), block)
 

+ 1 - 1
创维盒子/双子星云手机/Class/Set/appUpdate/HaveNewVersionView.m

@@ -91,7 +91,7 @@ static HaveNewVersionView * _instance;
     /*删除按钮*/
     deleteBtn = [[UIButton alloc] init];
     [deleteBtn setBackgroundColor:[UIColor clearColor]];
-    [deleteBtn setImage:[UIImage imageNamed:@"guanbi_bai_icon"] forState:(UIControlStateNormal)];
+    [deleteBtn setImage:[UIImage imageNamed:@"common_del"] forState:(UIControlStateNormal)];
     [deleteBtn addTarget:self action:@selector(deleteBtnPressed) forControlEvents:(UIControlEventTouchUpInside)];
     [bgView addSubview:deleteBtn];
     

+ 9 - 0
创维盒子/双子星云手机/Class/Set/uploadFile/uploadFileManager/cachesFileManager.h

@@ -14,6 +14,12 @@
 //视频路径
 #define kSHPath_video [cachesFileManager getCreateFilePath:[NSString stringWithFormat:@"%@/Video",CachesPatch]]
 
+//云机最后一帧 路径
+#define kSHPath_cloudPhone_last_image [cachesFileManager getCreateFilePath:[NSString stringWithFormat:@"%@/lastImage_%@/111.png",CachesPatch,[connectDeviceManager shareInstance].DeviceThirdIdMod.data.sn]]
+
+//日志路径
+#define kSHPath_logs [cachesFileManager getCreateFilePath:[NSString stringWithFormat:@"%@/logs/",CachesPatch]]
+
 NS_ASSUME_NONNULL_BEGIN
 
 @interface cachesFileManager : NSObject
@@ -30,6 +36,9 @@ NS_ASSUME_NONNULL_BEGIN
 
 //删除文件
 + (BOOL)removeItemAtPath:(NSString *)fileName type:(uploadFileType)type error:(NSError *__autoreleasing *)error;
+
+//写日志
++ (void)writeLogsWithMsg:(NSString *)msg;
 @end
 
 NS_ASSUME_NONNULL_END

+ 42 - 0
创维盒子/双子星云手机/Class/Set/uploadFile/uploadFileManager/cachesFileManager.m

@@ -148,4 +148,46 @@
     
     return success;
 }
+
+//写日志
++ (void)writeLogsWithMsg:(NSString *)msg
+{
+#if 0
+    if (![[NSFileManager defaultManager] fileExistsAtPath:kSHPath_logs]) {
+        
+        [[NSFileManager defaultManager] createDirectoryAtPath:kSHPath_logs withIntermediateDirectories:YES attributes:nil error:nil];
+    }
+    
+    NSString *logFilePath = [kSHPath_logs stringByAppendingPathComponent:@"app.log"];
+      
+    // 创建或打开文件
+    NSFileManager *fileManager = [NSFileManager defaultManager];
+    if (![fileManager fileExistsAtPath:logFilePath]) {
+        // 如果文件不存在,则创建它
+        NSError *error;
+        if (![[NSFileManager defaultManager] createFileAtPath:logFilePath contents:nil attributes:nil]) {
+            NSLog(@"Unable to create file: %@", logFilePath);
+        }
+    }
+      
+    // 准备写入文件
+    long long endOfFile = 0;
+    
+    NSFileHandle *fileHandle = [NSFileHandle fileHandleForWritingAtPath:logFilePath]; // 创建文件句柄
+    if (fileHandle) {
+        endOfFile = [fileHandle seekToEndOfFile];
+        if (endOfFile >=  0) {
+            NSString *allMsg = [[NSString alloc] initWithFormat:@"%@ %@\n",[iTools getNowTimeString3],msg];
+            NSData *fileData =[allMsg dataUsingEncoding:NSUTF8StringEncoding];
+            [fileHandle writeData:fileData];
+        }
+        
+        endOfFile = [fileHandle seekToEndOfFile];
+        // 关闭文件句柄
+        [fileHandle closeFile];
+    }
+#endif
+    
+}
+
 @end

+ 15 - 4
创维盒子/双子星云手机/Class/Set/view/allVersionView.m

@@ -44,6 +44,7 @@
     NSString *str5 = NSLocalizedString(@"my_set_about_version_tap_sn",nil);
     NSString *str6 = NSLocalizedString(@"my_set_about_version_tap_av",nil);
     NSString *str7 = NSLocalizedString(@"my_set_about_version_tap_newVersion",nil);
+    NSString *str8 = @"sdnId";
     
     [dataArr addObject:str1];
     [dataArr addObject:str1_1];
@@ -54,6 +55,7 @@
     [dataArr addObject:str5];
     [dataArr addObject:str6];
     [dataArr addObject:str7];
+    [dataArr addObject:str8];
     
     self.backgroundColor = [UIColor hwColor:@"#000000" alpha:0.6];
     
@@ -65,7 +67,7 @@
     [_whiteBgView mas_makeConstraints:^(MASConstraintMaker *make) {
         make.left.mas_equalTo(20);
         make.right.mas_equalTo(-20);
-        make.height.mas_equalTo(500);
+        make.height.mas_equalTo(560);
         make.centerY.mas_equalTo(self.center).offset(-20);
     }];
     
@@ -189,9 +191,14 @@
                 cell.detailTextLabel.text = [NSString stringWithFormat:@"V%@",vers];
             }
                 break;
-            case 6:
-                //cell.detailTextLabel.text = _couldphoneSysInfoMod.data.data.sn;
-                cell.detailTextLabel.text = [connectDeviceManager shareInstance].DeviceThirdIdMod.data.sn;
+            case 6:{
+                if([_couldphoneSysInfoMod.data.data.sn isEqualToString:[connectDeviceManager shareInstance].DeviceThirdIdMod.data.sn]){
+                    cell.detailTextLabel.text = _couldphoneSysInfoMod.data.data.sn;
+                }
+                else{
+                    cell.detailTextLabel.text = [[NSString alloc] initWithFormat:@"%@(%@)",_couldphoneSysInfoMod.data.data.sn,[connectDeviceManager shareInstance].DeviceThirdIdMod.data.sn];
+                }
+            }
                 break;
             case 7:{
                 cell.detailTextLabel.text = _couldphoneSysInfoMod.data.data.AVVersion;
@@ -201,6 +208,10 @@
                 cell.detailTextLabel.text = _couldphoneSysInfoMod.data.data.MyNewVersion;
             }
                 break;
+            case 9:{
+                cell.detailTextLabel.text = [connectDeviceManager shareInstance].DeviceThirdIdMod.data.sdnId;
+            }
+                break;
         }
     }
 

+ 2 - 0
创维盒子/双子星云手机/CloudPlayer/PlayerViewController+otherDelegate.h

@@ -31,6 +31,8 @@ NS_ASSUME_NONNULL_BEGIN
 - (void)getCouldPhoneBaseInfoResponseFun:(NSDictionary *)dataDict;
 - (void)getCouldPhoneSysInfoResponseFun:(NSDictionary *)dataDict;
 - (void)getCouldPhoneTvStatusResponseFun:(NSDictionary *)dataDict;
+- (void)saveLastImageFun;
+- (void)readLastImageFun;
 @end
 
 NS_ASSUME_NONNULL_END

+ 29 - 0
创维盒子/双子星云手机/CloudPlayer/PlayerViewController+otherDelegate.mm

@@ -749,4 +749,33 @@
     self.isSuspendUploadType = YES;
 }
 
+- (void)saveLastImageFun
+{
+    UIImage *image = [UIImage imageWithCIImage:saveCIImage];
+    if(image){   //执行返回最后一帧
+        //[mPlayerView.showImageView setImage:image];
+        
+        NSString *filePath = kSHPath_cloudPhone_last_image;
+        NSString *folderPath = [kSHPath_cloudPhone_last_image stringByDeletingLastPathComponent];
+        [[NSFileManager defaultManager] removeItemAtPath:folderPath error:nil];
+        [cachesFileManager getCreateFilePath:folderPath];
+        NSData*imageData = UIImagePNGRepresentation(image);
+        
+        BOOL ret = [imageData writeToFile:filePath atomically:NO];
+        
+        if (ret) {
+        }
+    }
+}
+
+- (void)readLastImageFun
+{
+    NSString *filePath = kSHPath_cloudPhone_last_image;
+    UIImage *image = [UIImage imageWithContentsOfFile:filePath];
+    if(image && !saveCIImage){
+        [mPlayerView.showImageView setImage:image];
+    }
+}
+
+
 @end

+ 25 - 6
创维盒子/双子星云手机/CloudPlayer/PlayerViewController.mm

@@ -117,6 +117,7 @@ ComontAlretViewControllerDelegate>
     ComontAlretViewController *linkFailAlretVC;
     
     NSTimer *forceStartTimer;//请知重启timer
+    BOOL isWebSockLinkOKAginType;//WebSock断开后或者链接上了
 }
 @property (nonatomic, strong, nullable) RCVideoRecoderManager *recoderManager;
 @property (nonatomic, strong, nullable) RCAudioRecoderMamager *audioRecoderMamager;
@@ -312,6 +313,10 @@ ComontAlretViewControllerDelegate>
 }
 
 - (void)viewWillDisappear:(BOOL)animated {
+    
+    //保存最后一帧
+    [self saveLastImageFun];
+    
     // 退出控制器 回收资源
     [self recyclResource];
     AppDelegate *app = (AppDelegate *)[UIApplication sharedApplication].delegate;
@@ -584,7 +589,7 @@ ComontAlretViewControllerDelegate>
 //                    if (self->deviceModel.authPhone==0 && self->deviceModel.phoneAuthStatus == 0){
 //                        return;/*自己的云手机且未授权直接返回*/
 //                    }
-//                    
+//
 //                    if (![useName isEqualToString:selfUseName]){
 //                        /*根据实际情况进行相关回复*/
 //                        [self.commandChannelManager rc_sendData:[RCCommandHelp faceBackControllcommandWithUseName:selfUseName haveControl:self->canControl]];
@@ -593,7 +598,7 @@ ComontAlretViewControllerDelegate>
 //                    if (self->deviceModel.authPhone==0 && self->deviceModel.phoneAuthStatus == 0){
 //                        return;/*自己的云手机且未授权直接返回*/
 //                    }
-//                    
+//
 //                    if (self->deviceModel.authPhone==0) {/*是自己的设备时候要询问是否夺回控制权*/
 //                        if (![useName isEqualToString:selfUseName]) {
 //                            /*弹窗询问是否夺回控制权*/
@@ -616,11 +621,11 @@ ComontAlretViewControllerDelegate>
 //                    if (self->deviceModel.authPhone==0 && self->deviceModel.phoneAuthStatus == 0){
 //                        return;/*自己的云手机且未授权直接返回*/
 //                    }
-//                    
+//
 //                    if ([useName isEqualToString:selfUseName]){
 //                        return;
 //                    }
-//                    
+//
 //                    if (self->deviceModel.authPhone!=0) {/*不是自己的设备时候要进行关闭控制权*/
 //                        if (self->canControl == YES) {
 //                            /*弹窗提示控制权已经被夺回*/
@@ -746,7 +751,9 @@ ComontAlretViewControllerDelegate>
                 [weakSelf stopForceStartTimerFun];
             }
         } failure:^(NSError *error) {
+            self->isWebSockLinkOKAginType = NO;
             [self showNetErrorAlertFun:2];
+            [self WebSocketNeedRelinkFun];
         }];
     }
 }
@@ -892,6 +899,8 @@ ComontAlretViewControllerDelegate>
     {
         [mPlayerView setPoMas_makeWithImageRate:ksharedAppDelegate.couldPhone_W_PHONE/ksharedAppDelegate.couldPhone_H_PHONE isOpenVirtual:YES isUsageMode:NO];
     }
+    
+    [self readLastImageFun];
 }
 
 /**
@@ -1378,6 +1387,8 @@ NSDate *lastVideoTome;/*上一帧数据时间*/
 // 连接
 - (void)connectVideoServer {
     
+    internetVideoPort = [[connectDeviceManager shareInstance] tcpPortStr];
+    
     if(self.didRecyclResource){
         return;
     }
@@ -1400,7 +1411,7 @@ NSDate *lastVideoTome;/*上一帧数据时间*/
     NSString *tempIP = ip;
     
     HLog(@"__连接ip__%@,端口__%@",ip,internetVideoPort);
-    
+    [cachesFileManager writeLogsWithMsg:[[NSString alloc] initWithFormat:@"link ip %@,port %@",ip,internetVideoPort]];
     //
     RCCloudPhoneConnectType ConnectType = RCCloudPhoneConnectType_websocket;
     RCCloudPhoneVideoQuality VideoQuality = RCCloudPhoneVideoQuality_Default;//RCCloudPhoneVideoQuality_High;
@@ -1621,6 +1632,7 @@ NSDate *lastVideoTome;/*上一帧数据时间*/
 #pragma mark 盒子链接成功后需要处理的各种各样事情
 - (void)handlAllMsgAfterDidLinkFun
 {
+    self->isWebSockLinkOKAginType = YES;
     //获取云机尺寸 兼容 720*1080 &1080*1920 不同分辨率的展示和触控
     NSString *getPhoneSizeStr = [RCCommandHelp getPhoneSizecommand];
     [self send_data:getPhoneSizeStr];
@@ -2082,7 +2094,12 @@ NSDate *lastVideoTome;/*上一帧数据时间*/
 #pragma mark 网络异常弹框
 -(void)showNetErrorAlertFun:(NSInteger)type
 {
-    if(linkFailAlretVC){
+    [cachesFileManager writeLogsWithMsg:[[NSString alloc] initWithFormat:@"showNetErrorAlertFun %ld",type]];
+    
+    if(linkFailAlretVC
+       ||[connectDeviceManager shareInstance].isReInitType//瑞云重新init 耗时2-7s 他们说的
+       ||(self->isWebSockLinkOKAginType && type == 2) //重连上了但是延时消息来了
+       ){
         return;
     }
     
@@ -2130,6 +2147,7 @@ NSDate *lastVideoTome;/*上一帧数据时间*/
                                                                                   okTitle:NSLocalizedString(@"player_link_fail_tryAgain",nil) isOkBtnHighlight:YES
                                                                                didClickOk:^{
         [weakSelf tryAgainInLinkFailFun];
+        [cachesFileManager writeLogsWithMsg:@"click tryAgain"];
          
      } didClickCancel:^{
          exit(0);
@@ -2160,6 +2178,7 @@ NSDate *lastVideoTome;/*上一帧数据时间*/
         return;
     }
     
+    [[connectDeviceManager shareInstance] tryReconnectFun];
     [self showNewIndicator];
     reConnectAccount = 0;
     [self tryAgain];

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

@@ -29,6 +29,7 @@ NS_ASSUME_NONNULL_BEGIN
 + (NSString *)getNowTimeString1;
 /** 获取当前时间戳-以秒为单位-return yyyyy-MM-dd HH:mm:ss */
 + (NSString *)getNowTimeString2;
++ (NSString *)getNowTimeString3;
 /** 获取当前时间戳-以毫秒为单位-return NSInteger */
 + (NSInteger)getNowTimeStampSS;
 /** 获取当前时间戳-以毫秒为单位--return YYYYMMddhhmmssSSS */

+ 8 - 0
创维盒子/双子星云手机/Helpers/iTools.m

@@ -66,6 +66,14 @@ static const char encodingTable[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopq
     return dateStr;
 }
 
++ (NSString *)getNowTimeString3 {
+    NSDate *nowDate = [NSDate date];
+    NSDateFormatter *format = [[NSDateFormatter alloc] init];
+    [format setDateFormat:@"yyyy-MM-dd HH:mm:ss.SSS"];
+    NSString *dateStr = [format stringFromDate:nowDate];
+    return dateStr;
+}
+
 + (NSInteger)getNowTimeStampToInterval:(NSTimeInterval)second {
     long  long dTime = [[NSNumber numberWithDouble:second*1000] longLongValue];
     return dTime;

+ 6 - 1
创维盒子/双子星云手机/connectDeviceManager/connectDeviceManager.h

@@ -19,7 +19,7 @@ typedef enum{
 }connectDeviceState;
 
 /**
- *  
+ *
  */
 typedef void (^netWork_DidEndByOK) (NSInteger didSuc); // 0 fail 1 suc -1 处理
 
@@ -32,6 +32,9 @@ typedef void (^netWork_DidEndByOK) (NSInteger didSuc); // 0 fail 1 suc -1 处理
 //是否完成了第一次密码输入
 @property(nonatomic,assign) BOOL  isFirstInputPwdDone;
 
+//重新初始化
+@property(nonatomic,assign) BOOL  isReInitType;
+
 @property(nonatomic,copy) NSString*  tcpPortStr;
 
 #pragma mark 根据扫码的sn获取第三方信息 是否需要重连
@@ -42,6 +45,8 @@ typedef void (^netWork_DidEndByOK) (NSInteger didSuc); // 0 fail 1 suc -1 处理
 
 #pragma mark 保持卡密码
 -(void)updateCardInfoBySN:(NSString*)snStr withPwdStr:(NSString*)pwd didNetEnd:(netWork_DidEndByOK)didNetEndIsOK;
+
+- (void)tryReconnectFun;
 @end
 
 NS_ASSUME_NONNULL_END

+ 89 - 9
创维盒子/双子星云手机/connectDeviceManager/connectDeviceManager.m

@@ -25,6 +25,8 @@ WHPingDelegate
     WHPingTester *whPingTester;
     
     BOOL didRuiYunInitOkType;
+    
+    BOOL disconnected_cb_type;//瑞云回调链接断开了
 }
 
 @property (nonatomic, strong) NSTimer *connectCheckTimer;
@@ -252,15 +254,11 @@ static connectDeviceManager *connectDeviceManagerInstance = nil;
     /// 3. 根据对端的 SDN ID 创建连接
     [RaylinkProxy.sharedManager createNewConnection:curSdnId];
     
-    /// 4. 创建 HttpService
-    self.tcpPort = [RaylinkProxy.sharedManager createHttpService:curSdnId];
-    self.tcpPortStr = [[NSString alloc] initWithFormat:@"%ld",self.tcpPort];
+
     
     self.socket = [[GCDAsyncSocket alloc] initWithDelegate:self delegateQueue:dispatch_get_main_queue()];
     
-    /// 6. 添加端口防火墙
-    [RaylinkProxy.sharedManager addSdnId:curSdnId allowPort:9300];
-    [RaylinkProxy.sharedManager addSdnId:curSdnId allowPort:9100];
+
    
     
     //[self.connectBtn setEnabled:NO];
@@ -317,13 +315,33 @@ static connectDeviceManager *connectDeviceManagerInstance = nil;
     
     
     if (status == 0) {
+        
+        /// 4. 创建 HttpService
+        self.tcpPort = [RaylinkProxy.sharedManager createHttpService:sdnId];
+        self.tcpPortStr = [[NSString alloc] initWithFormat:@"%ld",self.tcpPort];
+        
+        /// 5. 添加端口防火墙
+        [RaylinkProxy.sharedManager addSdnId:sdnId allowPort:9300];
+        [RaylinkProxy.sharedManager addSdnId:sdnId allowPort:9100];
+        
+        [cachesFileManager writeLogsWithMsg:@"onProxyConnected connectToHost"];
+        
         /// 6. 等待连接成功回调,创建 TCP socket 连接 HttpService 的端口
-        [self.socket connectToHost:@"127.0.0.1" onPort:self.tcpPort error:NULL];
+         NSError *error;
         
-        _curConnectDeviceState = DeviceConnectDeciceOk;
+        NSString*log1 =  [[NSString alloc] initWithFormat:@"onProxyConnected connectToHost begin %ld", (long)self.tcpPort];
+        [cachesFileManager writeLogsWithMsg:log1];
+        
+        [self.socket connectToHost:@"127.0.0.1" onPort:self.tcpPort error:&error];
         
+        NSString*log2 =  [[NSString alloc] initWithFormat:@"onProxyConnected connectToHost end %ld, self.socket = %@ error = %@", (long)self.tcpPort, self.socket, error];
+        [cachesFileManager writeLogsWithMsg:log2];
+        
+        _curConnectDeviceState = DeviceConnectDeciceOk;
         _Pre_sdnId = self.DeviceThirdIdMod.data.sdnId;
         
+        disconnected_cb_type = NO;
+    
 //        [self.connectBtn setTitle:@"连接成功" forState:UIControlStateDisabled];
 //        [self.sendBtn setEnabled:YES];
     } else {
@@ -334,6 +352,67 @@ static connectDeviceManager *connectDeviceManagerInstance = nil;
     }
 }
 
+- (void)OnProxyDisconnected_cb:(NSString *)sdnId {
+    [RaylinkProxy.sharedManager closeHttpService:sdnId];
+    [cachesFileManager writeLogsWithMsg:@"OnProxyDisconnected_cb"];
+    disconnected_cb_type = YES;
+}
+
+//瑞云sock 断开了 需要重连
+- (void)tryReconnectFun{
+    
+    [cachesFileManager writeLogsWithMsg:@"tryReconnect"];
+    if(!disconnected_cb_type){
+        [cachesFileManager writeLogsWithMsg:@"tryReconnect return"];
+        return;
+    }
+    
+    NSURL *logUrl = [[NSFileManager.defaultManager URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask].firstObject URLByAppendingPathComponent:@"logs"];
+    
+    if (![NSFileManager.defaultManager fileExistsAtPath:logUrl.path]) {
+        [NSFileManager.defaultManager createDirectoryAtURL:logUrl withIntermediateDirectories:YES attributes:NULL error:NULL];
+    }
+    
+    dispatch_queue_t reinitProxyQueue = dispatch_queue_create("reinit_proxy", 0);
+    
+    
+    [cachesFileManager writeLogsWithMsg:@"tryReconnect initProxy 0"];
+    dispatch_async(reinitProxyQueue, ^{
+        NSData *sdnInfo = [NSData dataWithContentsOfURL:[[NSBundle.mainBundle bundleURL] URLByAppendingPathComponent:@"planet.1ali_3ry_peer"]];
+        
+        /// 1. 初始化代理库
+        [cachesFileManager writeLogsWithMsg:@"tryReconnect initProxy 1"];
+        self->disconnected_cb_type = NO;
+        self->_isReInitType = YES;
+        [RaylinkProxy.sharedManager initProxy:logUrl.path rootSdnInfo:sdnInfo];
+        self->_isReInitType = NO;
+        [cachesFileManager writeLogsWithMsg:@"tryReconnect initProxy 2"];
+    });
+    
+//    //KWeakSelf
+//    NSMutableDictionary *paraDict = [NSMutableDictionary new];
+//    if(self.DeviceThirdIdMod.data.sn){
+//        [paraDict setValue:self.DeviceThirdIdMod.data.sn forKey:@"sn"];
+//    }
+//
+//    [cachesFileManager writeLogsWithMsg:@"tryReconnect CommonGetWithCallBackCode"];
+//    [[netWorkManager shareInstance] CommonGetWithCallBackCode:getThirdIdBySn Parameters:paraDict success:^(id  _Nonnull responseObject) {
+//
+//        dispatch_async(self->initProxyQueue, ^{
+//            NSData *sdnInfo = [NSData dataWithContentsOfURL:[[NSBundle.mainBundle bundleURL] URLByAppendingPathComponent:@"planet.1ali_3ry_peer"]];
+//
+//            /// 1. 初始化代理库
+//            [RaylinkProxy.sharedManager initProxy:logUrl.path rootSdnInfo:sdnInfo];
+//            [cachesFileManager writeLogsWithMsg:@"tryReconnect initProxy"];
+//        });
+//
+//
+//    } failure:^(NSError * _Nonnull error) {
+//        HLog("网络报错");
+//    }];
+    
+}
+
 - (void)socket:(GCDAsyncSocket *)sock didConnectToHost:(NSString *)host port:(uint16_t)port {
     
     NSLog(@"didConnectToHost %d", port);
@@ -350,10 +429,11 @@ static connectDeviceManager *connectDeviceManagerInstance = nil;
     [thread start];
     
     /// 7. Socket 连接成功后,通过 socket  发送, self.peerPortTF 为对端服务端口
-    [sock writeData:[[NSString stringWithFormat:@"CONNECT 127.0.0.1:%@ HTTP/1.0\r\n\r\n", @"9100"] dataUsingEncoding:NSUTF8StringEncoding] withTimeout:-1 tag:0];
+    //[sock writeData:[[NSString stringWithFormat:@"CONNECT 127.0.0.1:%@ HTTP/1.0\r\n\r\n", @"9100"] dataUsingEncoding:NSUTF8StringEncoding] withTimeout:-1 tag:0];
 
     NSLog(@"readDataToData");
     
+    [cachesFileManager writeLogsWithMsg:@"didConnectToHost writeData"];
 }
 
 - (void)socket:(GCDAsyncSocket *)sock didWriteDataWithTag:(long)tag