From b74c052b43d7c4a830386940a036eb7c2ec9abc2 Mon Sep 17 00:00:00 2001
From: WJC <wjc@hdlchina.com.cn>
Date: 星期二, 14 一月 2020 13:37:26 +0800
Subject: [PATCH] 2020-1-14-01
---
ZigbeeApp/Shared/Phone/ZigBee/Device/ZbGateway.cs | 83 +++++++++++++++++++++++------------------
1 files changed, 46 insertions(+), 37 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/ZigBee/Device/ZbGateway.cs b/ZigbeeApp/Shared/Phone/ZigBee/Device/ZbGateway.cs
index 8c1ef41..695486f 100755
--- a/ZigbeeApp/Shared/Phone/ZigBee/Device/ZbGateway.cs
+++ b/ZigbeeApp/Shared/Phone/ZigBee/Device/ZbGateway.cs
@@ -3177,7 +3177,7 @@
.WithTcpServer(brokerName, 1883)
.WithKeepAlivePeriod(TimeSpan.FromSeconds(20))
.WithCleanSession()
- .WithCommunicationTimeout(TimeSpan.FromSeconds(4))
+ //.WithCommunicationTimeout(TimeSpan.FromSeconds(10))
.WithCredentials("", "")
.Build();
await localMqttClient.ConnectAsync(options, CancellationToken.None);
@@ -3358,7 +3358,7 @@
{
DebugPrintLog($"杩滅▼杩炴帴鏂紑");
await DisConnectRemoteMqttClient("StartRemoteMqtt.DisconnectedHandler");
- await StartRemoteMqtt();
+ //await StartRemoteMqtt();
});
}
if (RemoteMqttClient.ConnectedHandler == null)
@@ -3411,21 +3411,35 @@
try
{
- var jsonData = new Dictionary<string, object> { ["RequestVersion"] = "RequestVersion", ["RequestSource"] = 0, ["LoginAccessToken"] = Config.Instance.Token, ["RequestProtocolType"] = 0 };
- var bytes = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(jsonData));
-
- var result = await CommonPage.Instance.DoRequestZigbeeHttpsInterface("https://global.hdlcontrol.com/HangZhouHdlCloudApi/EmqMqtt/GetConnMqttInfo", bytes, Config.Instance.Token);
- //{
- //"ResponseVersion": "RequestVersion1",
- //"StateCode": "Success",
- //"ErrorInfo": null,
- //"ResponseData": { < !--濡備笅淇℃伅鍙兘浣跨敤涓�娆★紝鍗充究浣犺繛鎺ュけ璐�!-- >
- // "ConnEmqDomainPort": "tcp://developer.hdlcontrol.com:1883",
- // "ConnEmqClientId": "ZigbeeClientTcp_33094de8-34ba-4e38-93c2-ac8da16d0e68_Zigbee",
- // "ConnEmqUserName": "33094de8-34ba-4e38-93c2-ac8da16d0e68",
- // "ConnEmqPwd": "4a265b65-d6cc-4a"
- //}
- //}
+ byte[] result = null;
+ if (Config.Instance.Home.IsOthreShare == false)
+ {
+ //涓讳汉
+ var jsonData = new Dictionary<string, object>
+ {
+ ["RequestVersion"] = CommonPage.RequestVersion,
+ ["RequestSource"] = 0,
+ ["LoginAccessToken"] = Config.Instance.Token,
+ ["RequestProtocolType"] = 0
+ };
+ var bytes = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(jsonData));
+ result = await CommonPage.Instance.DoRequestZigbeeHttpsInterface("https://global.hdlcontrol.com/HangZhouHdlCloudApi/EmqMqtt/GetConnMqttInfo", bytes, Config.Instance.Token);
+ }
+ else
+ {
+ //鍒嗕韩鐨�
+ var jsonData = new Dictionary<string, object>
+ {
+ ["RequestVersion"] = CommonPage.RequestVersion,
+ ["RequestSource"] = 0,
+ ["LoginAccessToken"] = Config.Instance.Token,
+ ["RequestProtocolType"] = 0,
+ ["MainUserDistributedMark"] = Config.Instance.Home.MainUserDistributedMark,
+ ["HomeId"] = Config.Instance.Home.Id
+ };
+ var bytes = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(jsonData));
+ result = await CommonPage.Instance.DoRequestZigbeeHttpsInterface("https://global.hdlcontrol.com/HangZhouHdlCloudApi/EmqMqtt/ShareMemberConnMqttInfo", bytes, Config.Instance.Token);
+ }
if (result != null)
{
var jobject = Newtonsoft.Json.Linq.JObject.Parse(Encoding.UTF8.GetString(result));
@@ -3447,7 +3461,7 @@
.WithCredentials(connEmqUserName, connEmqPwd)
.WithKeepAlivePeriod(TimeSpan.FromSeconds(20))
.WithCleanSession()
- .WithCommunicationTimeout(TimeSpan.FromSeconds(6))
+ //.WithCommunicationTimeout(TimeSpan.FromSeconds(10))
.Build();
await DisConnectRemoteMqttClient("StartRemoteMqtt");
await RemoteMqttClient.ConnectAsync(options, CancellationToken.None);
@@ -3601,9 +3615,7 @@
//鏂囦欢娴佷笉鐢ㄥ姞瀵�
if (topic != "FileTransfer/SendFile")
{
- topic = ZigBee.Common.SecuritySet.AesEncrypt(System.Text.Encoding.UTF8.GetBytes(topic), Password);
- topic = topic.Replace("/", "[[$-MQTT_TILT_SYMBOL_REPLACE-$]]").Replace("+", "[[$-MQTT_PLUS_SYMBOL_REPLACE-$]]");
- message = System.Text.Encoding.UTF8.GetBytes(SecuritySet.AesEncrypt(message, password));
+ message = SecuritySet.AesEncryptBytes(message, password);
}
}
if (localIsConnected)
@@ -3614,6 +3626,7 @@
}
catch(Exception e)
{
+ DebugPrintLog($"Local涓诲姩鏂紑_{e.Message}");
await DisConnectLocalMqttClient(e.Message);
await StartLocalMqtt("ReConnect");
if (localIsConnected)
@@ -3664,8 +3677,7 @@
{
try
{
- var topic = e.ApplicationMessage.Topic.TrimStart('/');
- topic = topic.Replace("[[$-MQTT_TILT_SYMBOL_REPLACE-$]]", "/").Replace("[[$-MQTT_PLUS_SYMBOL_REPLACE-$]]", "+");
+ var topic = e.ApplicationMessage.Topic.TrimStart('/');
var payload = e.ApplicationMessage.Payload;
var message = string.Empty;
@@ -3680,7 +3692,7 @@
{
return;
}
- if (topics[2]== "NotifyGateWayInfoChagne") {
+ if (topics[2]== "NotifyGateWayInfoChange") {
initGateWayBaseInfomation();
return;
}
@@ -3727,39 +3739,36 @@
{
try
{
- var topic = e.ApplicationMessage.Topic;
- topic = topic.Replace("[[$-MQTT_TILT_SYMBOL_REPLACE-$]]", "/").Replace("[[$-MQTT_PLUS_SYMBOL_REPLACE-$]]", "+");
- var message = System.Text.Encoding.UTF8.GetString(e.ApplicationMessage.Payload);
+ var topic = e.ApplicationMessage.Topic;
+ string payloadString = "";
if (IsEncry)
{
//涓婚
- topic = Common.SecuritySet.AesDecrypt(System.Text.Encoding.UTF8.GetBytes(topic), Password);
//涓嬭浇鐨勫瓧鑺傛祦涓嶉渶瑕佽В瀵�
if (topic.Split('/')[0] + "/" + topic.Split('/')[1] == topic.Split('/')[0] + "/" + "FileTransfer")
{
if (topic.Split('/')[2] != "DownloadFile")
{
- message = Common.SecuritySet.AesDecrypt(e.ApplicationMessage.Payload, Password);
+ payloadString = System.Text.Encoding.UTF8.GetString(Common.SecuritySet.AesDecryptBytes(e.ApplicationMessage.Payload, Password));
}
}
else if (topic == topic.Split('/')[0] + "/" + "SendAESKey_Respon") { }//鍥炲涓婚鏄鏂囷紝鏁版嵁鏄槑鏂�
else
{
- message = Common.SecuritySet.AesDecrypt(e.ApplicationMessage.Payload, Password);
+ payloadString = System.Text.Encoding.UTF8.GetString(Common.SecuritySet.AesDecryptBytes(e.ApplicationMessage.Payload, Password));
}
}
-
-#if DEBUG
- DebugPrintLog($"缃戝叧杩斿洖鐨勪富棰�:{topic}_缃戝叧杩斿洖鐨勮礋杞�:{message}_{System.DateTime.Now.ToString()}");
-#endif
- ReceiveMessage(topic, message, e.ApplicationMessage.Payload);
+ else
+ {
+ payloadString = System.Text.Encoding.UTF8.GetString(e.ApplicationMessage.Payload);
+ }
+ DebugPrintLog($"缃戝叧杩斿洖鐨勪富棰�:{topic}_缃戝叧杩斿洖鐨勮礋杞�:{payloadString}");
+ ReceiveMessage(topic, payloadString, e.ApplicationMessage.Payload);
}
catch (Exception ex)
{
-#if DEBUG
DebugPrintLog($"鎺ユ敹缃戝叧鏁版嵁寮傚父:{ex.Message}");
-#endif
}
}
--
Gitblit v1.8.0