From 3f6685c77beeb12baf840733fb890860f4c26e7c Mon Sep 17 00:00:00 2001 From: mac <user@users-MacBook-Pro.local> Date: 星期四, 25 七月 2024 17:25:59 +0800 Subject: [PATCH] 2024年07月25日17:24:45 --- HDL_ON/DAL/Mqtt/MqttClient.cs | 94 +++++++++++++++++++--------------------------- 1 files changed, 39 insertions(+), 55 deletions(-) diff --git a/HDL_ON/DAL/Mqtt/MqttClient.cs b/HDL_ON/DAL/Mqtt/MqttClient.cs index b6be181..cea69ec 100644 --- a/HDL_ON/DAL/Mqtt/MqttClient.cs +++ b/HDL_ON/DAL/Mqtt/MqttClient.cs @@ -12,6 +12,9 @@ using HDL_ON.Entity; using HDL_ON.UI; using HDL_ON.DAL.Server; +using HDL_ON; +using Newtonsoft.Json; +using System.Collections.Generic; namespace HDL_ON.DAL.Mqtt { @@ -110,6 +113,7 @@ { MqttInfoConfig.Current.IfGetMqttInfoSuccess = false; } + //Control.Ins.GatewayOnline_Cloud = Control.Ins.GatewayOnline_Local = false; await DisConnectRemoteMqttClient(s); } @@ -143,6 +147,7 @@ await StartCloudMqtt(); await SubscribeTopics(); + } catch { } } @@ -156,10 +161,11 @@ public static void InitState() { IfNeedReadAllDeviceStatus = true; + Common.ApiUtlis.Ins.hadInternet = true; StartCloudMqtt(); } - static bool isSubscribeSuccess; + public static bool isSubscribeSuccess; /// <summary> /// 璁㈤槄涓婚 /// </summary> @@ -261,8 +267,8 @@ #endregion - Utlis.WriteLine("寮�濮嬭闃咃紒"); - var result = await RemoteMqttClient.SubscribeAsync(new MqttTopicFilter[] { + Utlis.WriteLine("寮�濮嬭闃咃紒"); + var result = await RemoteMqttClient.SubscribeAsync(new MqttTopicFilter[] { pirStatus,pirStudy, appDeviceRefresh,appHomeRefresh,appRoomRefresh,residenceChange, topicFilterPush2, topicAlinkStatus ,mqttkeyChange, @@ -335,7 +341,13 @@ public static async Task StartCloudMqtt() { //娌℃湁缃戠粶鐨勭姸鎬佷笅灏濊瘯涓�涓嬭繛鎺qtt 锛屽畨鍗撶殑缃戠粶鐘舵�佸彉鍖栫洃鍚湁寮傚父锛屼慨鏀瑰簳灞傞夯鐑� - if (MainPage.InternetStatus == 0 && MainPage.LinkHdlMqttCount > 1) + if (MainPage.InternetStatus == 0 && MainPage.LinkHdlMqttCount > 1 ) + { + return; + } + + + if (!Common.ApiUtlis.Ins.hadInternet) { return; } @@ -361,6 +373,26 @@ await Task.Factory.StartNew((Func<Task>)(async () => { try { + try + { + //澧炲姞3绉掍簯鏈嶅姟鍣ㄨ繛鎺ユ娴嬶紝杩炰笉涓婃湇鍔″櫒鐨勬椂鍊欎笉鍒锋柊鏁版嵁 + var dataList = new List<GlobalRegionListRes>(); + var requestJson = HttpUtil.GetSignRequestJson(new GetRegionListObj() { regionMark = HttpUtil.RegionMark }); + var revertObj = HttpUtil.RequestHttpsPost(NewAPI.API_POST_GlobalRegionList, requestJson, HttpUtil.GlobalRequestHttpsHost, "", 3); + if (revertObj == null || revertObj.Code != StateCode.SUCCESS) + { + Common.ApiUtlis.Ins.hadInternet = false; + return; + } + else + { + Common.ApiUtlis.Ins.hadInternet = true; + } + } + catch + { + } + #region 鍒濆鍖栬繙绋婱qtt RemoteMqttIsConnecting = true; RemoteMqttClient = new MqttFactory().CreateMqttClient(); @@ -489,48 +521,6 @@ else if (topic == $"/user/{DB_ResidenceData.Instance.CurrentRegion.id}/app/thing/event/appDeviceRefresh/up") { MainPage.Log("璁惧鏁版嵁鍒锋柊閫氱煡"); - var deviceResult = new HttpServerRequest().GetDeviceList(); - if (deviceResult.Code == StateCode.SUCCESS) - { - MainPage.Log($"璇诲彇璁惧淇℃伅鎴愬姛"); - var deviceList = Newtonsoft.Json.JsonConvert.DeserializeObject<DevcieApiPack>(deviceResult.Data.ToString()); - if (deviceList == null) - { - deviceList = new DevcieApiPack(); - } - string delFile = ""; - if (FunctionList.List.GetDeviceFunctionList().Count > 0) - { - for (int i = 0; i < FunctionList.List.GetDeviceFunctionList().Count;) - { - var localFunction = FunctionList.List.GetDeviceFunctionList()[i]; - if (SPK.MusicSpkList().Contains(localFunction.spk)) - { - i++; - continue; - } - var newFunction = deviceList.list.Find((obj) => obj.deviceId == localFunction.deviceId); - - if (delFile == localFunction.savePath) - { - i++; - continue; - } - delFile = localFunction.savePath; - FunctionList.List.DeleteFunction(localFunction); - } - } - //澶勭悊鍓╀笅鐨勬柊澧炲姛鑳� - foreach (var newFunction in deviceList.list) - { - newFunction.SaveFunctionFile(); - FunctionList.List.IniFunctionList(newFunction.savePath); - } - } - else - { - MainPage.Log($"璇诲彇浜戠璁惧鏁版嵁澶辫触:Code:{deviceResult.Code}; Msg:{deviceResult.message}"); - } } //缃戝叧瀵嗛挜鍙樺寲 else if (topic == $"/user/{DB_ResidenceData.Instance.CurrentRegion.id}/custom/mqtt/secret/change") @@ -589,7 +579,7 @@ { var bytes = Securitys.EncryptionService.AesDecryptPayload(e.ApplicationMessage.Payload, tuyaEncryptKey); var revString = Encoding.UTF8.GetString(bytes); - MainPage.Log($"mqtt 鐘舵�佹洿鏂�:{revString}"); + //MainPage.Log($"mqtt 鐘舵�佹洿鏂�:{revString}"); Control.Ins.UpdataFunctionStatus(revString, null, true); //Control.Ins.MsgInfoList.Add($"mqtt 鐘舵�佹洿鏂�:{revString}"); //Control.Ins.MsgInfoList.Add(revString + "\r\n"); @@ -870,15 +860,11 @@ /// </summary> static void ReceiveNotifySqueezeAsync(string mMes) { -#if DEBUG - //return; -#endif if (mMes == PushSignStr) return;//鏄嚜宸辩殑鐧诲綍鎺ㄩ�佷笉澶勭悊//鎴栬�呭綋鍓嶄笉鏄繙绋嬮摼鎺ョ姸鎬� //娴嬭瘯璐﹀彿锛屼笉鎸や笅绾� switch (UserInfo.Current.userMobileInfo) { case "15626203746": - case "464027401@qq.com": return; } @@ -929,9 +915,7 @@ static void SendPushSignOut() { byte[] message = Encoding.UTF8.GetBytes(PushSignStr); -#if DEBUG MqttRemoteSend(message, 4); -#endif } /// <summary> @@ -1019,7 +1003,7 @@ MqttInfoConfig.Current.mMqttInfo = mqttInfoRequestResult_Obj; - await MQTTConnectAsync(); + //await MQTTConnectAsync(); //1.鍒ゆ柇鏄惁缁戝畾浜嗙綉鍏筹紝鑾峰彇缃戝叧杩滅▼杩炴帴鐨勫姞瀵咾EY //if (DB_ResidenceData.Instance.CheckWhetherGatewayIsBound()) { @@ -1186,7 +1170,7 @@ } catch (Exception ex) { - Console.WriteLine(ex.Message); + MainPage.Log(ex.Message); } return reData; } -- Gitblit v1.8.0