From d4811b7d34b45ff6b21b97f11da128b5572ec526 Mon Sep 17 00:00:00 2001 From: wei <kaede@kaededeMacBook-Air.local> Date: 星期三, 03 三月 2021 16:03:03 +0800 Subject: [PATCH] 20210303-1 --- HDL_ON/DAL/Mqtt/MqttClient.cs | 138 +++++++++++++++++++++------------------------- 1 files changed, 63 insertions(+), 75 deletions(-) diff --git a/HDL_ON/DAL/Mqtt/MqttClient.cs b/HDL_ON/DAL/Mqtt/MqttClient.cs index 8c97e15..d6b5871 100644 --- a/HDL_ON/DAL/Mqtt/MqttClient.cs +++ b/HDL_ON/DAL/Mqtt/MqttClient.cs @@ -71,11 +71,6 @@ Utlis.WriteLine($"Remote涓诲姩鏂紑_{s}"); //await RemoteMqttClient.DisconnectAsync(new MQTTnet.Client.Disconnecting.MqttClientDisconnectOptions { }, CancellationToken.None); await RemoteMqttClient.DisconnectAsync(); - - if (Control.Ins.IsRemote) - { - Control.Ins.GatewayOnline = false; - } } } catch (Exception e) @@ -138,9 +133,12 @@ try { System.Threading.Thread.Sleep(500); - //if (!Control.Ins.IsRemote) continue; //杩涘叆鍚庡彴涓嶅鐞� if (MainPage.IsEnterBackground) continue; + if (MqttInfoConfig.Current.HomeGatewayInfo == null) + { + continue; + } await StartCloudMqtt(); await SubscribeTopics(); @@ -198,11 +196,8 @@ var result = await RemoteMqttClient.SubscribeAsync(new MqttTopicFilter[] { topicFilterPush2, topicAlinkStatus }); if (result.Items[0].ResultCode == MQTTnet.Client.Subscribing.MqttClientSubscribeResultCode.GrantedQoS0) { - Control.Ins.GatewayOnline = true; isSubscribeSuccess = true; Utlis.WriteLine("璁㈤槄鎴愬姛锛�"); - - MqttRemoteSend(new byte[] { 0 }, 3); } } catch (Exception ex) @@ -251,6 +246,7 @@ try { var topic = e.ApplicationMessage.Topic; + MainPage.Log($"鏀跺埌mqtt涓婚:{topic}"); //涓�绔彛涓婚澶勭悊 if (DB_ResidenceData.Instance.GatewayType == 0 && !DB_ResidenceData.Instance.CheckWhetherGatewayIdIsNull()) { @@ -271,7 +267,7 @@ else if (topic == $"/BusGateWayToClient/{MqttInfoConfig.Current.HomeGatewayInfo.gatewayId}/Common/CheckGateway") { var ss = Encoding.UTF8.GetString(e.ApplicationMessage.Payload); - ReceiveCheckGateway(ss); + //ReceiveCheckGateway(ss); return; } } @@ -287,12 +283,12 @@ { var bytes = Securitys.EncryptionService.AesDecryptPayload(e.ApplicationMessage.Payload, tuyaEncryptKey); var revString = Encoding.UTF8.GetString(bytes); - Control.Ins.UpdataFunctionStatus(revString, null); + Control.Ins.UpdataFunctionStatus(revString, null,true); } //涓�绔彛鏁版嵁瑙f瀽 else { - SetGatewayOnlineResetCheck(); + //SetGatewayOnlineResetCheck(); var bytes = Securitys.EncryptionService.AesDecryptPayload(e.ApplicationMessage.Payload, mqttEncryptKey); //bus鏁版嵁瑙f瀽 var packet = new Packet(); @@ -327,6 +323,7 @@ RemoteMqttClient.UseConnectedHandler(async (e) => { IfNeedReadAllDeviceStatus = true; + Control.Ins.GatewayOnline_Cloud = true; Utlis.WriteLine($"============>Mqtt杩滅▼杩炴帴鎴愬姛"); SendPushSignOut(); }); @@ -407,11 +404,6 @@ /// <returns></returns> static async Task StartMQTTGetInfo() { - //if (!Control.Ins.IsRemote) - //{ - // return; - //} - await GetMqttInfoAndMQTTConnectAsync(); ////--鍒ゆ柇鏄綋鍓嶆槸鍚﹀垎浜殑浣忓畢 @@ -430,12 +422,6 @@ /// </summary> static async Task MQTTConnectAsync() { - - //if (!Control.Ins.IsRemote) - //{ - // return; - //} - //if (MqttInfoConfig.Current.HomeGatewayInfo != null && MqttInfoConfig.Current.mMqttInfo != null) //娌℃湁缃戝叧鎯呭喌涓嬶紝涔熼渶瑕佽繛鎺qtt锛屾秱楦︾涓夋柟璁惧涓嶉渶瑕佺綉鍏� if (MqttInfoConfig.Current.mMqttInfo != null) @@ -457,10 +443,7 @@ MqttInfoConfig.Current.Save(); - if (MqttInfoConfig.Current.HomeGatewayInfo == null) - { - MqttInfoConfig.Current.HomeGatewayInfo = new Server.HomeGatewayInfo(); - } + mqttEncryptKey = MqttInfoConfig.Current.HomeGatewayInfo.aesKey; //瑙e瘑瀵嗛挜瑙勫垯锛氬凡鐜版湁鐨勪綇瀹匢D涓哄熀鍑�,浠庡彸杈逛竴涓�鑾峰彇鍊�,鏈�鍚庡鏋滀笉澶�16浣�,鍒欏線鍙宠ˉ闆� string aesKey = string.Empty; @@ -526,12 +509,11 @@ { try { - SetGatewayOnlineResetCheck(); - if (Control.Ins.IsRemote) + //SetGatewayOnlineResetCheck(); + if (Control.Ins.GatewayOnline_Cloud) { CheckIfNeedReadAllDeviceStatus(); } - } catch { } } @@ -541,22 +523,33 @@ /// </summary> static void ReceiveNotifyGateWayOffline() { - if (Control.Ins.IsRemote) - { - Control.Ins.GatewayOnline = false; - } + Control.Ins.GatewayOnline_Cloud = false; } - /// <summary> /// 鏀跺埌鎸や笅绾挎帹閫� /// </summary> static void ReceiveNotifySqueezeAsync(string mMes) { - if (mMes == PushSignStr) return;//鏄嚜宸辩殑鐧诲綍鎺ㄩ�佷笉澶勭悊 + if (mMes == PushSignStr ) return;//鏄嚜宸辩殑鐧诲綍鎺ㄩ�佷笉澶勭悊//鎴栬�呭綋鍓嶄笉鏄繙绋嬮摼鎺ョ姸鎬� + //娴嬭瘯璐﹀彿锛屼笉鎸や笅绾� + switch (UserInfo.Current.AccountString) + { + case "13415629083": + case "18316120654": + case "15622703419": + case "18824864143": + case "464027401@qq.com": + case "2791308028@qq.com": + case "13697499568": + case "18666455392": + case "13375012446": + case "13602944661": + case "18778381374": + case "18316672920": + return; + } - //鏂紑杩滅▼杩炴帴 - Control.Ins.IsRemote = false; if (!UserInfo.Current.IsLogin) { return; @@ -583,20 +576,20 @@ //HDLRequest.Current.PushserivceSignOut (); } - /// <summary> - /// 鏀跺埌CheckGateway涓婚 - /// </summary> - static void ReceiveCheckGateway(string mMes) - { - if (!Control.Ins.IsRemote) return; + ///// <summary> + ///// 鏀跺埌CheckGateway涓婚 + ///// </summary> + //static void ReceiveCheckGateway(string mMes) + //{ + // if (!Control.Ins.IsRemote) return; - Utlis.WriteLine("ReceiveCheckGateway锛�"); + // Utlis.WriteLine("ReceiveCheckGateway锛�"); - //CheckIfNeedReadAllDeviceStatus (); + // //CheckIfNeedReadAllDeviceStatus (); - //var obj = Newtonsoft.Json.JsonConvert.DeserializeObject<ResponsePack>(mMes); - Control.Ins.GatewayOnline = true; - } + // //var obj = Newtonsoft.Json.JsonConvert.DeserializeObject<ResponsePack>(mMes); + // Control.Ins.GatewayOnline = true; + //} /// <summary> /// 鎺ㄩ�佹尋涓嬬嚎涓婚 @@ -628,11 +621,6 @@ } await RemoteMqttClient.PublishAsync(new MqttApplicationMessage { Topic = topicName, Payload = message, Retain = false, QualityOfServiceLevel = MQTTnet.Protocol.MqttQualityOfServiceLevel.AtMostOnce }); break; - case 3: - topicName = $"/ClientToBusGateWay/{MqttInfoConfig.Current.HomeGatewayInfo.gatewayId}/Common/CheckGateway"; - Utlis.WriteLine("CheckGateway"); - await RemoteMqttClient.PublishAsync(new MqttApplicationMessage { Topic = topicName, Retain = false, QualityOfServiceLevel = MQTTnet.Protocol.MqttQualityOfServiceLevel.AtMostOnce }); - break; case 4://鍙戝竷鏂版柟妗堢殑鎸や笅绾夸富棰� topicName = $"/BusGateWayToClient/{UserInfo.Current.ID}" + PushNotifySqueeze; //message = Encoding.UTF8.GetBytes (PushSignStr); @@ -661,27 +649,27 @@ /// </summary> static bool IfNeedReadAllDeviceStatus = true; - /// <summary> - /// 璁剧疆缃戝叧鍦ㄧ嚎鏍囧織锛屽苟閲嶇疆CheckGateway鍙傛暟 - /// </summary> - static void SetGatewayOnlineResetCheck() - { - if (Control.Ins.IsRemote) - { - if (!Control.Ins.GatewayOnline) - { - try - { - if (DB_ResidenceData.Instance.HomeGateway != null) - { - DB_ResidenceData.Instance.HomeGateway.gatewayStatus = true; - } - Control.Ins.GatewayOnline = true; - } - catch { } - } - } - } + ///// <summary> + ///// 璁剧疆缃戝叧鍦ㄧ嚎鏍囧織锛屽苟閲嶇疆CheckGateway鍙傛暟 + ///// </summary> + //static void SetGatewayOnlineResetCheck() + //{ + // if (Control.Ins.IsRemote) + // { + // if (!Control.Ins.GatewayOnline) + // { + // try + // { + // if (DB_ResidenceData.Instance.HomeGateway != null) + // { + // DB_ResidenceData.Instance.HomeGateway.gatewayStatus = true; + // } + // Control.Ins.GatewayOnline = true; + // } + // catch { } + // } + // } + //} /// <summary> -- Gitblit v1.8.0