wei
2020-12-24 d1af1b8337591363e60c286348501a841138dbb3
HDL_ON/DAL/Mqtt/MqttClient.cs
@@ -186,9 +186,14 @@
                        Topic = $"/user/{MqttInfoConfig.Current.HomeGatewayInfo.gatewayId}/app/thing/property/send",
                        QualityOfServiceLevel = MQTTnet.Protocol.MqttQualityOfServiceLevel.AtMostOnce
                    };
                    var topicBusStatus = new MqttTopicFilter()
                    {
                        Topic = $"/BusGateWayToClient/MacMask/Common",
                        QualityOfServiceLevel = MQTTnet.Protocol.MqttQualityOfServiceLevel.AtMostOnce
                    };
                    Utlis.WriteLine("开始订阅!");
                    var result = await RemoteMqttClient.SubscribeAsync(new MqttTopicFilter[] { topicFilterBusGateWayToClient, topicFilterPush2 , topicAlinkStatus });
                    var result = await RemoteMqttClient.SubscribeAsync(new MqttTopicFilter[] { topicFilterBusGateWayToClient, topicFilterPush2, topicAlinkStatus, topicBusStatus });
                    if (result.Items[0].ResultCode == MQTTnet.Client.Subscribing.MqttClientSubscribeResultCode.GrantedQoS0)
                    {
                        isSubscribeSuccess = true;
@@ -269,7 +274,6 @@
                                }
                                else
                                {
                                    MainPage.Log($"mqtt data");
                                    SetGatewayOnlineResetCheck();
                                    var bytes = Securitys.EncryptionService.AesDecryptPayload(e.ApplicationMessage.Payload, DB_ResidenceData.Instance.HomeGateway.aesKey);
                                    
@@ -286,10 +290,19 @@
                                        {
                                            packet.Bytes = e.ApplicationMessage.Payload;
                                        }
#if DEBUG
                                        //string ddd = "";
                                        //foreach (var bb in packet.Bytes)
                                        //{
                                        //    ddd += bb + ",";
                                        //}
                                        //MainPage.Log($"mqtt bus data:{ddd}");
#endif
                                        packet.Manager();
                                    }
                                    else
                                    {
                                        MainPage.Log($"mqtt A-Link data");
                                        //A协议数据处理
                                        var revString = Encoding.UTF8.GetString(bytes);
                                        Control.Ins.UpdataFunctionStatus(revString,null);
@@ -312,25 +325,9 @@
                    //(3)ConnectedHandler
                    if (RemoteMqttClient.ConnectedHandler == null)
                    {
                        RemoteMqttClient.UseConnectedHandler(async (e) => {
                            if (DB_ResidenceData.Instance.HomeGateway.gatewayStatus)
                            {
                                Control.Ins.GatewayOnline = true;
                            }
                            else
                            {
                                //new System.Threading.Thread(() => {
                                //    while(true)
                                //    {
                                //        System.Threading.Thread.Sleep(1000);
                                //        if (DB_ResidenceData.Instance.HomeGateway.GatewayOnline)
                                //        {
                                //            Control.Ins.GatewayOnline = true;
                                //            break;
                                //        }
                                //    }
                                //}) { IsBackground = true }.Start();
                            }
                        RemoteMqttClient.UseConnectedHandler(async (e) =>
                        {
                            Control.Ins.GatewayOnline = true;
                            IfNeedReadAllDeviceStatus = true;
                            Utlis.WriteLine($"============>Mqtt远程连接成功");
                            SendPushSignOut();
@@ -557,7 +554,12 @@
            DisConnectRemoteMqttClient("挤下线");
            HDLCommon.Current.CheckLogout();
            Application.RunOnMainThread(() =>
            {
                //弹窗提示被挤下线
                HDLCommon.Current.CheckLogout();
            });
            //UserInfo.Current.LastTime = DateTime.MinValue;
            //UserInfo.Current.SaveUserInfo();
@@ -650,7 +652,6 @@
        /// 是否需要读取一次所有设备状态
        /// </summary>
        static bool IfNeedReadAllDeviceStatus = true;
        //public static bool IsGatewayOnline = true;
        /// <summary>
        /// 设置网关在线标志,并重置CheckGateway参数