chenqiyang
2022-05-17 39e83c7df7608b29a3f359bcc6d9ca9b7ff095f5
HDL_ON/DAL/Mqtt/MqttClient.cs
@@ -218,6 +218,12 @@
                        Topic = $"/user/{DB_ResidenceData.Instance.CurrentRegion.id}/app/thing/event/appDeviceRefresh/up",
                        QualityOfServiceLevel = MQTTnet.Protocol.MqttQualityOfServiceLevel.AtMostOnce
                    };
                    //设备在线离线状态推送
                    var deviceOnlinePush = new MqttTopicFilter()
                    {
                        Topic = $"/user/{DB_ResidenceData.Instance.CurrentRegion.id}/app/son/session/online",
                        QualityOfServiceLevel = MQTTnet.Protocol.MqttQualityOfServiceLevel.AtMostOnce
                    };
                    //appRoomRefresh:房间数据刷新通知
                    var appRoomRefresh = new MqttTopicFilter()
                    {
@@ -253,6 +259,7 @@
                        pirStatus,pirStudy,
                        appDeviceRefresh,appHomeRefresh,appRoomRefresh,residenceChange,
                        topicFilterPush2, topicAlinkStatus ,mqttkeyChange,
                        deviceOnlinePush,
                        securityStatusChange});
                    if (result.Items[0].ResultCode == MQTTnet.Client.Subscribing.MqttClientSubscribeResultCode.GrantedQoS0)
                    {
@@ -345,6 +352,32 @@
                                    //新挤下线主题方案 收到挤下线主题
                                    ReceiveNotifySqueezeAsync(mMes);
                                }
                                //设备在线离线状态推送
                                else if(topic == $"/user/{DB_ResidenceData.Instance.CurrentRegion.id}/app/son/session/online")
                                {
                                    try
                                    {
                                        var mMes = Encoding.UTF8.GetString(e.ApplicationMessage.Payload);
                                        Newtonsoft.Json.Linq.JObject pairs = Newtonsoft.Json.Linq.JObject.Parse(mMes);
                                        var pairSid = pairs.GetValue("sid").ToString();
                                        var pairOnline = pairs.GetValue("online");
                                        if (!string.IsNullOrEmpty(pairSid.ToString()))
                                        {
                                            var function_online = FunctionList.List.Functions.Find((obj) => obj.sid == pairSid);
                                            if (function_online != null){
                                                function_online.online = (bool)pairOnline;
                                                HomePage.LoadEvent_RefreshDevcieOnline(function_online);
                                                FunctionPage.UpdataOnline(function_online);
                                                RoomPage.UpdataOnline(function_online);
                                            }
                                        }
                                    }
                                    catch(Exception ex)
                                    {
                                    }
                                }
                                //App订阅红外宝/网关遥控器添加成功通知
                                else if (topic == $"/user/{DB_ResidenceData.Instance.CurrentRegion.id}/app/thing/topo/found")
                                {