From 223b318d0070d06e7b64192dc93aa8103865d657 Mon Sep 17 00:00:00 2001
From: wei <kaede@kaededeMacBook-Air.local>
Date: 星期二, 16 三月 2021 11:42:57 +0800
Subject: [PATCH] 1.
---
HDL_ON/DAL/Mqtt/MqttClient.cs | 171 ++++++++++++++++++++++++++++++--------------------------
1 files changed, 91 insertions(+), 80 deletions(-)
diff --git a/HDL_ON/DAL/Mqtt/MqttClient.cs b/HDL_ON/DAL/Mqtt/MqttClient.cs
index 2a7d9d5..6b893ed 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();
@@ -193,19 +191,21 @@
Topic = $"/user/{DB_ResidenceData.Instance.CurrentRegion.RegionID}/app/thing/property/send",
QualityOfServiceLevel = MQTTnet.Protocol.MqttQualityOfServiceLevel.AtMostOnce
};
+ //App璁㈤槄绾㈠瀹� / 缃戝叧閬ユ帶鍣ㄦ坊鍔犳垚鍔熼�氱煡
+ var pirStatus = new MqttTopicFilter()
+ {
+ Topic = $"/user/{DB_ResidenceData.Instance.CurrentRegion.RegionID}/app/thing/topo/found",
+ QualityOfServiceLevel = MQTTnet.Protocol.MqttQualityOfServiceLevel.AtMostOnce
+ };
Utlis.WriteLine("寮�濮嬭闃咃紒");
- var result = await RemoteMqttClient.SubscribeAsync(new MqttTopicFilter[] { topicFilterPush2, topicAlinkStatus });
+ var result = await RemoteMqttClient.SubscribeAsync(new MqttTopicFilter[] {
+ pirStatus,
+ topicFilterPush2, topicAlinkStatus });
if (result.Items[0].ResultCode == MQTTnet.Client.Subscribing.MqttClientSubscribeResultCode.GrantedQoS0)
{
- Control.Ins.GatewayOnline = true;
isSubscribeSuccess = true;
Utlis.WriteLine("璁㈤槄鎴愬姛锛�");
- if (MqttInfoConfig.Current.HomeGatewayInfo != null && MqttInfoConfig.Current.HomeGatewayInfo.mac == Entity.DB_ResidenceData.Instance.residenceGatewayMAC)
- {
- Control.Ins.IsRemote = true;
- }
- MqttRemoteSend(new byte[] { 0 }, 3);
}
}
catch (Exception ex)
@@ -226,6 +226,10 @@
}
if (!UserInfo.Current.IsLogin)
+ {
+ return;
+ }
+ if(DB_ResidenceData.Instance.CurrentRegion == null || DB_ResidenceData.Instance.CurrentRegion.RegionID == null)
{
return;
}
@@ -275,9 +279,15 @@
else if (topic == $"/BusGateWayToClient/{MqttInfoConfig.Current.HomeGatewayInfo.gatewayId}/Common/CheckGateway")
{
var ss = Encoding.UTF8.GetString(e.ApplicationMessage.Payload);
- ReceiveCheckGateway(ss);
+ //ReceiveCheckGateway(ss);
return;
}
+ }
+
+ //涓�浜涚壒娈婄殑涓婚澶勭悊(涓轰簡鎵ц閫熷害,灏藉彲鑳界殑鍒姞鑰楁椂鐨勬搷浣� true:鎵ц浜嗙壒娈婂鐞� false:娌℃湁鎵ц鐗规畩澶勭悊)
+ if (Stan.HdlCloudReceiveLogic.Current.CloudOverallMsgReceiveEx(topic, e.ApplicationMessage.Payload, mqttEncryptKey, tuyaEncryptKey) == true)
+ {
+ return;
}
if (topic == $"/BusGateWayToClient/{UserInfo.Current.ID}" + PushNotifySqueeze)
@@ -286,18 +296,27 @@
//鏂版尋涓嬬嚎涓婚鏂规 鏀跺埌鎸や笅绾夸富棰�
ReceiveNotifySqueezeAsync(mMes);
}
+ //App璁㈤槄绾㈠瀹�/缃戝叧閬ユ帶鍣ㄦ坊鍔犳垚鍔熼�氱煡
+ else if (topic == $"/user/{DB_ResidenceData.Instance.CurrentRegion.RegionID}/app/thing/topo/found")
+ {
+ var bytes = Securitys.EncryptionService.AesDecryptPayload(e.ApplicationMessage.Payload, tuyaEncryptKey);
+ var revString = Encoding.UTF8.GetString(bytes);
+ HDL_ON.UI.UI2.PersonalCenter.PirDevice.Method.addcontronsid = revString;
+ //ReceiveCheckGateway(ss);
+ //return;
+ }
//A缃戝叧璁惧鐘舵��-鍖呭惈娑傞甫璁惧
else if (topic == $"/user/{DB_ResidenceData.Instance.CurrentRegion.RegionID}/app/thing/property/send")
{
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();
- var bytes = Securitys.EncryptionService.AesDecryptPayload(e.ApplicationMessage.Payload, mqttEncryptKey);
+ //SetGatewayOnlineResetCheck();
+ //var bytes = Securitys.EncryptionService.AesDecryptPayload(e.ApplicationMessage.Payload, mqttEncryptKey);
//bus鏁版嵁瑙f瀽
var packet = new Packet();
@@ -331,6 +350,7 @@
RemoteMqttClient.UseConnectedHandler(async (e) =>
{
IfNeedReadAllDeviceStatus = true;
+ Control.Ins.GatewayOnline_Cloud = true;
Utlis.WriteLine($"============>Mqtt杩滅▼杩炴帴鎴愬姛");
SendPushSignOut();
});
@@ -411,11 +431,6 @@
/// <returns></returns>
static async Task StartMQTTGetInfo()
{
- //if (!Control.Ins.IsRemote)
- //{
- // return;
- //}
-
await GetMqttInfoAndMQTTConnectAsync();
////--鍒ゆ柇鏄綋鍓嶆槸鍚﹀垎浜殑浣忓畢
@@ -434,12 +449,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)
@@ -461,10 +470,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;
@@ -530,12 +536,11 @@
{
try
{
- SetGatewayOnlineResetCheck();
- if (Control.Ins.IsRemote)
+ //SetGatewayOnlineResetCheck();
+ if (Control.Ins.GatewayOnline_Cloud)
{
CheckIfNeedReadAllDeviceStatus();
}
-
}
catch { }
}
@@ -545,22 +550,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;
@@ -587,20 +603,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>
/// 鎺ㄩ�佹尋涓嬬嚎涓婚
@@ -632,11 +648,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);
@@ -665,27 +676,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