From eb424d24e39bab4a245725f35deab3f234ea0f13 Mon Sep 17 00:00:00 2001
From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local>
Date: 星期五, 13 十二月 2019 10:48:50 +0800
Subject: [PATCH] 2019.12.13
---
ZigbeeApp/Shared/Phone/ZigBee/Device/ZbGateway.cs | 90 +++++++++++++++++++++++++--------------------
1 files changed, 50 insertions(+), 40 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/ZigBee/Device/ZbGateway.cs b/ZigbeeApp/Shared/Phone/ZigBee/Device/ZbGateway.cs
index 8c1ef41..7d98f3d 100755
--- a/ZigbeeApp/Shared/Phone/ZigBee/Device/ZbGateway.cs
+++ b/ZigbeeApp/Shared/Phone/ZigBee/Device/ZbGateway.cs
@@ -95,7 +95,7 @@
}
}
- #region variable
+ #region variable
/// <summary>
/// 杩滅▼杩炴帴鎴愬姛鏃剁殑鏃堕棿
/// </summary>
@@ -218,6 +218,7 @@
/// <para>绗竴涓弬鏁帮細濡傛灉涓� DDevice/IsGetEpointInfo:鏈夋柊璁惧鍔犲叆zigbee缃戠粶鍙嶉</para>璁惧璇锋眰APP鑾峰彇鍗囩骇鏁版嵁
/// <para>绗竴涓弬鏁帮細濡傛灉涓� Device/DeviceJoinZbNet:鑾峰彇鏂拌澶囨墍鏈夌鐐逛俊鎭槸鍚︽垚鍔熷弽棣�</para>
/// <para>绗竴涓弬鏁帮細濡傛灉涓� DeviceRequestAcUpdateData: 璁惧璇锋眰绌鸿皟鍙戝崌绾ф暟鎹�</para>
+ /// "宸茬粡閫氱煡");//宸茬粡閫氱煡");
/// </summary>
[Newtonsoft.Json.JsonIgnore]
public Action<string, object> ReportAction;
@@ -3177,7 +3178,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);
@@ -3310,7 +3311,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;
@@ -3358,7 +3359,7 @@
{
DebugPrintLog($"杩滅▼杩炴帴鏂紑");
await DisConnectRemoteMqttClient("StartRemoteMqtt.DisconnectedHandler");
- await StartRemoteMqtt();
+ //await StartRemoteMqtt();
});
}
if (RemoteMqttClient.ConnectedHandler == null)
@@ -3411,21 +3412,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 +3462,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);
@@ -3504,7 +3519,7 @@
await RemoteMqttClient.DisconnectAsync(new MQTTnet.Client.Disconnecting.MqttClientDisconnectOptions { }, CancellationToken.None);
}
}
- catch(Exception e) {
+ catch(Exception e) {
DebugPrintLog($"Remote鏂紑閫氳杩炴帴鍑哄紓甯�:{e.Message}");
}
}
@@ -3601,9 +3616,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 +3627,7 @@
}
catch(Exception e)
{
+ DebugPrintLog($"Local涓诲姩鏂紑_{e.Message}");
await DisConnectLocalMqttClient(e.Message);
await StartLocalMqtt("ReConnect");
if (localIsConnected)
@@ -3664,8 +3678,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 +3693,7 @@
{
return;
}
- if (topics[2]== "NotifyGateWayInfoChagne") {
+ if (topics[2]== "NotifyGateWayInfoChange") {
initGateWayBaseInfomation();
return;
}
@@ -3727,39 +3740,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