From f500e14c0a994487070380c50c85e0929cbc8e63 Mon Sep 17 00:00:00 2001 From: JLChen <551775569@qq.com> Date: 星期二, 05 一月 2021 10:48:04 +0800 Subject: [PATCH] 2021-01-05 1.更新 --- Crabtree/SmartHome/UI/SimpleControl/MqttCommon.cs | 54 ++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 40 insertions(+), 14 deletions(-) diff --git a/Crabtree/SmartHome/UI/SimpleControl/MqttCommon.cs b/Crabtree/SmartHome/UI/SimpleControl/MqttCommon.cs index a2f8a98..18c142a 100644 --- a/Crabtree/SmartHome/UI/SimpleControl/MqttCommon.cs +++ b/Crabtree/SmartHome/UI/SimpleControl/MqttCommon.cs @@ -65,6 +65,8 @@ System.Threading.Thread.Sleep (200); if (!CommonPage.IsRemote) continue; + if (Control.IsEnterBackground) continue; + await StartCloudMqtt (); await CheckingSubscribeTopics (); } catch { } @@ -78,7 +80,7 @@ IfNeedReadAllDeviceStatus = true; bNeedStartTip = true; IsGatewayOnline = false; - + StartCloudMqtt (); } @@ -97,6 +99,7 @@ } try { if (!isSubscribeTopicSuccess) { + var topicFilterCommon = new TopicFilter () { Topic = $"/BusGateWayToClient/{CurRemoteMACInfo.macMark}/Common/#", @@ -121,12 +124,30 @@ QualityOfServiceLevel = MQTTnet.Protocol.MqttQualityOfServiceLevel.ExactlyOnce }; - + var topicFilters = new TopicFilter [] { topicFilterCommon, topicFilterGateWayInfoChange, topicFilterNotifySqueeze, topicFilterNotifyGateWayOffline }; var result = await RemoteMqttClient.SubscribeAsync (topicFilters); if (result.Items [0].ResultCode == MQTTnet.Client.Subscribing.MqttClientSubscribeResultCode.GrantedQoS2) { isSubscribeTopicSuccess = true; } + + ////2020-06-22 閫氱敤涓婚 + //var topicFilterMacMark = new TopicFilter () { + // Topic = $"/BusGateWayToClient/{CurRemoteMACInfo.macMark}/#", + // QualityOfServiceLevel = MQTTnet.Protocol.MqttQualityOfServiceLevel.ExactlyOnce + //}; + + ////鎸や笅绾夸富棰� + //var topicFilterNotifySqueeze = new TopicFilter () { + // Topic = $"/BusGateWayToClient/{mMqttInfo.connEmqClientId}/Push/NotifySqueeze", + // QualityOfServiceLevel = MQTTnet.Protocol.MqttQualityOfServiceLevel.ExactlyOnce + //}; + + //var topicFilters = new TopicFilter [] { topicFilterMacMark, topicFilterNotifySqueeze }; + //var result = await RemoteMqttClient.SubscribeAsync (topicFilters); + //if (result.Items [0].ResultCode == MQTTnet.Client.Subscribing.MqttClientSubscribeResultCode.GrantedQoS2) { + // isSubscribeTopicSuccess = true; + //} } } catch (Exception ex) { @@ -190,6 +211,9 @@ //琛ㄧず鍚庨潰灏嗚繘琛岃繛鎺� #region 鍒濆鍖栬繙绋婱qtt + //2020-06-22 澧炲姞 + RemoteMqttClient = new MqttFactory ().CreateMqttClient (); + //(3)褰揫杩炴帴浜戠鐨凪qtt鎴愬姛鍚嶿鎴栬�匸浠ュ強鍚庨潰App閫氳繃浜戠Mqtt杞彂鏁版嵁缁欑綉鍏虫垚鍔熷悗],澶勭悊鎺ユ敹鍒颁簯绔暟鎹寘鍝嶅簲鏃跺湪mqttServerClient_ApplicationMessageReceived杩欎釜鏂规硶澶勭悊 if (RemoteMqttClient.ApplicationMessageReceivedHandler == null) { RemoteMqttClient.UseApplicationMessageReceivedHandler (async (e) => { @@ -289,7 +313,7 @@ } catch (Exception ex) { //Utlis.WriteLine ($"============>Mqtt 杩滅▼杩炴帴閫氳杩炴帴鍑哄紓甯�:{ex.Message}"); - MainPage.LoadingSetText ("Connect error, trying to reconnect."); + MainPage.LoadingTipShow ("Connect error, trying to reconnect."); if (IfDEBUG) { MainPage.ShowAlertOnMainThread ("error: " + ex.Message); @@ -299,7 +323,9 @@ //鏈�缁堣閲婃斁杩炴帴鐘舵�� remoteMqttIsConnecting = false; - MainPage.LoadingHide (); + MainPage.LoadingTipHide (); + + //MainPage.LoadingHide (); } }); } @@ -340,15 +366,15 @@ } else { //Utlis.WriteLine ("============>Mqtt CurRemoteMACInfo null"); - MainPage.LoadingSetText ("Please wait, failed to get gateway parameters."); + MainPage.LoadingTipShow ("Please wait, failed to get gateway parameters."); } } } else { //Utlis.WriteLine ("============>Mqtt mqttInfoRequestResult_Obj null"); - MainPage.LoadingSetText ("Please wait, failed to get user parameters."); - //MainPage.LoadingSetText ("Please wait, failed to get parameters."); + MainPage.LoadingTipShow ("Please wait, failed to get user parameters."); + //MainPage.LoadingTipShow ("Please wait, failed to get parameters."); } } catch { @@ -356,7 +382,7 @@ } else { //Utlis.WriteLine ("============>Mqtt GetInfo 澶辫触"); MainPage.AddTip ("Please wait, failed to get parameters."); - //MainPage.LoadingSetText ("Please wait, failed to get parameters."); + //MainPage.LoadingTipShow ("Please wait, failed to get parameters."); } } @@ -383,7 +409,7 @@ //--绗簩姝ワ細鑾峰彇褰撳墠浣忓垎浜畢缃戝叧淇℃伅骞惰繛鎺QTT await GetSingleHomeGatewayPaggerAndMQTTConnectAsync (); } else { - MainPage.LoadingSetText ("Please wait, failed to get user parameters."); + MainPage.LoadingTipShow ("Please wait, failed to get user parameters."); } } } @@ -399,7 +425,7 @@ //鑾峰彇鍙傛暟鎴愬姛锛屽紑濮嬭繛鎺�... //MainPage.AddTip ("Successfully obtained parameters, starting to connect..."); - MainPage.LoadingStart ("Please wait, connecting remotely..."); + MainPage.LoadingTipShow ("Please wait, connecting remotely..."); //try { // var url = mMqttInfo.connEmqDomainPort; @@ -454,7 +480,7 @@ remoteIsConnected = true; IsDisConnectingWithSendCatch = false; - MainPage.LoadingSetText ("Remote connection succeeded."); + MainPage.LoadingTipShow ("Remote connection succeeded."); //MainPage.AddTip ("Connection succeeded!"); //await MqttRemoteSend (new byte [] { 0 }, 1); @@ -466,7 +492,7 @@ //options1 寮傚父鎻愮ず //Console.WriteLine ("Connect error: " + ex.Message); - MainPage.LoadingSetText ("Connect error."); + MainPage.LoadingTipShow ("Connect error."); if (IfDEBUG) { MainPage.ShowAlertOnMainThread ("Connect error: " + ex.Message); @@ -492,7 +518,7 @@ bNeedStartTip = false; if (CommonPage.IsRemote) { //MainPage.AddTip ("Getting remote connection parameters..."); - MainPage.LoadingStart ("Please wait, getting connection parameters..."); + MainPage.LoadingTipShow ("Please wait, getting connection parameters..."); } } } @@ -591,7 +617,7 @@ CurRemoteMACInfo.aesKey = mGatewayRes.AesKey; mqttEncryptKey = CurRemoteMACInfo.aesKey; } else { - MainPage.LoadingSetText ("Please wait, failed to get gateway parameters."); + MainPage.LoadingTipShow ("Please wait, failed to get gateway parameters."); } } -- Gitblit v1.8.0