From b8cbf4a8b6910eefcb83b6d3a39e9b5b5a9cd79e Mon Sep 17 00:00:00 2001
From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local>
Date: 星期五, 10 一月 2020 16:39:22 +0800
Subject: [PATCH] 2019.1.10

---
 ZigbeeApp/Shared/Phone/ZigBee/Device/ZbGateway.cs |   41 +++++++++++++++++++++++++----------------
 1 files changed, 25 insertions(+), 16 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/ZigBee/Device/ZbGateway.cs b/ZigbeeApp/Shared/Phone/ZigBee/Device/ZbGateway.cs
index 6c9d52c..513c248 100755
--- a/ZigbeeApp/Shared/Phone/ZigBee/Device/ZbGateway.cs
+++ b/ZigbeeApp/Shared/Phone/ZigBee/Device/ZbGateway.cs
@@ -101,7 +101,7 @@
             }
         }
 
-        #region variable 
+        #region variable
         /// <summary>
         /// 杩滅▼杩炴帴鎴愬姛鏃剁殑鏃堕棿
         /// </summary>
@@ -224,6 +224,7 @@
         /// <para>绗竴涓弬鏁帮細濡傛灉涓� DDevice/IsGetEpointInfo:鏈夋柊璁惧鍔犲叆zigbee缃戠粶鍙嶉</para>璁惧璇锋眰APP鑾峰彇鍗囩骇鏁版嵁
         /// <para>绗竴涓弬鏁帮細濡傛灉涓� Device/DeviceJoinZbNet:鑾峰彇鏂拌澶囨墍鏈夌鐐逛俊鎭槸鍚︽垚鍔熷弽棣�</para>
         /// <para>绗竴涓弬鏁帮細濡傛灉涓� DeviceRequestAcUpdateData: 璁惧璇锋眰绌鸿皟鍙戝崌绾ф暟鎹�</para>
+        /// "宸茬粡閫氱煡");//宸茬粡閫氱煡");
         /// </summary>
         [Newtonsoft.Json.JsonIgnore]
         public Action<string, object> ReportAction;
@@ -3324,7 +3325,7 @@
         /// 杩滅▼MqttClient
         /// </summary>
         public static IMqttClient RemoteMqttClient= new MqttFactory().CreateMqttClient();
-        static bool remoteIsConnected; 
+        static bool remoteIsConnected;
         private int IsLogin = 0;
         [Newtonsoft.Json.JsonIgnore]
         static Action actionTemp;
@@ -3382,6 +3383,16 @@
                             RemoteMqttClient.UseConnectedHandler(async (e) =>
                             {
                                 DebugPrintLog($"杩滅▼杩炴帴鎴愬姛");
+
+                                if (Config.Instance.Home.IsOthreShare == true)
+                                {
+                                    //璁㈤槄涓�涓垚鍛樿鍒犻櫎鐨勪富棰�
+                                    string myGuid = Config.Instance.Guid;
+                                    await RemoteMqttClient.SubscribeAsync("/ZigbeeGateWayToClient/" + myGuid + "/Push/Deleted");
+                                    //璁㈤槄涓�涓垎浜暟鎹凡缁忓彉鏇寸殑涓婚
+                                    await RemoteMqttClient.SubscribeAsync("/ZigbeeGateWayToClient/" + myGuid + "/Push/DeletedShareData");
+                                }
+
                                 await initGateWayBaseInfomation();
                                 Shared.Phone.UserCenter.HdlGatewayLogic.Current.CheckGatewayByConnectChanged(Shared.Phone.UserCenter.GatewayConnectMode.Remote);
                                 //娌℃湁涓荤綉鍏虫椂涓诲姩璇诲彇锛岃幏鍙栦富缃戝叧淇℃伅
@@ -3517,7 +3528,8 @@
                 {
                     localIsConnected = false;
                     DebugPrintLog($"Local涓诲姩鏂紑_{s}");
-                    await localMqttClient.DisconnectAsync(new MQTTnet.Client.Disconnecting.MqttClientDisconnectOptions {  }, CancellationToken.None);
+                    //await localMqttClient.DisconnectAsync(new MQTTnet.Client.Disconnecting.MqttClientDisconnectOptions {  }, CancellationToken.None);
+                    await localMqttClient.DisconnectAsync(); 
                 }
             }
             catch (Exception ex)
@@ -3537,10 +3549,11 @@
                 {
                     remoteIsConnected = false;
                     DebugPrintLog($"Remote涓诲姩鏂紑_{s}");
-                    await RemoteMqttClient.DisconnectAsync(new MQTTnet.Client.Disconnecting.MqttClientDisconnectOptions { }, CancellationToken.None);
+                    //await RemoteMqttClient.DisconnectAsync(new MQTTnet.Client.Disconnecting.MqttClientDisconnectOptions { }, CancellationToken.None);
+                    await RemoteMqttClient.DisconnectAsync();
                 }
             }
-            catch(Exception e) { 
+            catch(Exception e) {
                 DebugPrintLog($"Remote鏂紑閫氳杩炴帴鍑哄紓甯�:{e.Message}");
             }
         }
@@ -4350,22 +4363,18 @@
                 #region 璁惧璇锋眰APP鑾峰彇鍗囩骇鏁版嵁
                 else if (topic == gatewayID + "/" + "ZbDataPassthrough")
                 {
-                    var gatewayTemp = new ZbGateway() { DataID = jobject.Value<int>("Data_ID") };
-                    gatewayTemp.clientDataPassthroughResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<ClientDataPassthroughResponseData>(jobject["Data"].ToString());
-                    if (gatewayTemp.clientDataPassthroughResponseData == null)
-                    {
-                        return;
-                    }
-
                     //涓婃姤绫诲瀷閫氱煡
                     if (gwa.ReportAction != null)
-                    {
-                        DebugPrintLog("DeviceRequestAcUpdateData");
-                        gwa.ReportAction("DeviceRequestAcUpdateData", gatewayTemp.clientDataPassthroughResponseData);
+                    {
+                        var clientDataPassthrough = Newtonsoft.Json.JsonConvert.DeserializeObject<ClientDataPassthroughResponseData>(jobject["Data"].ToString());
+                        if (clientDataPassthrough != null)
+                        {
+                            DebugPrintLog("DeviceRequestAcUpdateData");
+                            gwa.ReportAction("DeviceRequestAcUpdateData", clientDataPassthrough);
+                        }
                     }
                 }
                 #endregion
-                DebugPrintLog("缃戝叧杩斿洖鏁版嵁閫氱煡");
             }
             catch (Exception ex)
             {

--
Gitblit v1.8.0