From e6a26ee148587327478d9a82624a820c907b6e16 Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期三, 04 十一月 2020 14:58:15 +0800
Subject: [PATCH] 20201104

---
 HDL_ON/DAL/Net/Mqtt_A_Protocol.cs |  414 +++++++++++++++++++++++++++++-----------------------------
 1 files changed, 208 insertions(+), 206 deletions(-)

diff --git a/HDL_ON/DAL/Net/Mqtt_A_Protocol.cs b/HDL_ON/DAL/Net/Mqtt_A_Protocol.cs
index 6410de4..d7dd0dd 100644
--- a/HDL_ON/DAL/Net/Mqtt_A_Protocol.cs
+++ b/HDL_ON/DAL/Net/Mqtt_A_Protocol.cs
@@ -1,219 +1,221 @@
-锘縰sing System;
-using MQTTnet.Client;
-using MQTTnet;
-using MQTTnet.Client.Options;
-using System.Net.Sockets;
-using System.Threading.Tasks;
+锘�//using System;
+//using MQTTnet.Client;
+//using MQTTnet;
+//using MQTTnet.Client.Options;
+//using System.Net.Sockets;
+//using System.Threading.Tasks;
 
-namespace HDL_ON.DAL.Net
-{
-    public static class Mqtt_A_Protocol
-    {
-        /// <summary>
-        /// MqttClient
-        /// </summary>
-        public static IMqttClient mqttClient_A;
-        public static string mqttClientIP;
-        public static string mqttGatewayMAC;
-        static bool remoteIsConnected;
+//namespace HDL_ON.DAL.Net
+//{
+//    public static class Mqtt_A_Protocol
+//    {
+//        /// <summary>
+//        /// MqttClient
+//        /// </summary>
+//        public static IMqttClient mqttClient_A;
+//        public static string mqttClientIP;
+//        public static string mqttGatewayMAC;
+//        public static string mqttGatewayName;
+//        static bool remoteIsConnected;
 
-        static bool onConnection = false;
+//        static bool onConnection = false;
 
-        static Mqtt_A_Protocol()
-        {
-            InitMqtt();
-        }
+//        static Mqtt_A_Protocol()
+//        {
+//            InitMqtt();
+//        }
 
-        /// <summary>
-        /// 鏂紑杩滅▼Mqtt鐨勯摼鎺�
-        /// </summary>
-        public static async Task DisConnectRemoteMqttClient(string s = "")
-        {
-            try
-            {
-                if (remoteIsConnected)
-                {
-                    remoteIsConnected = false;
-                    System.Console.WriteLine($"Remote涓诲姩鏂紑_{s}");
-                    //await RemoteMqttClient.DisconnectAsync(new MQTTnet.Client.Disconnecting.MqttClientDisconnectOptions { }, CancellationToken.None);
-                    await mqttClient_A.DisconnectAsync();
-                }
-            }
-            catch (Exception e)
-            {
-                Console.WriteLine($"Remote鏂紑閫氳杩炴帴鍑哄紓甯�:{e.Message}");
-            }
-        }
+//        /// <summary>
+//        /// 鏂紑杩滅▼Mqtt鐨勯摼鎺�
+//        /// </summary>
+//        public static async Task DisConnectRemoteMqttClient(string s = "")
+//        {
+//            try
+//            {
+//                if (remoteIsConnected)
+//                {
+//                    remoteIsConnected = false;
+//                    System.Console.WriteLine($"Remote涓诲姩鏂紑_{s}");
+//                    //await RemoteMqttClient.DisconnectAsync(new MQTTnet.Client.Disconnecting.MqttClientDisconnectOptions { }, CancellationToken.None);
+//                    await mqttClient_A.DisconnectAsync();
+//                }
+//            }
+//            catch (Exception e)
+//            {
+//                Console.WriteLine($"Remote鏂紑閫氳杩炴帴鍑哄紓甯�:{e.Message}");
+//            }
+//        }
 
-        static bool isSubscribeSuccess;
-        static async Task SubscribeTopics()
-        {
-            if (remoteIsConnected && !isSubscribeSuccess)
-            {
-                try
-                {
-                    var Topic1 = $"/BusGateWayToApp/{mqttGatewayMAC}/Common/Json";
-                    try
-                    {
-                        await mqttClient_A.SubscribeAsync(Topic1);
-                    }
-                    catch (Exception ex)
-                    {
-                        await DisConnectRemoteMqttClient(ex.Message);
-                        await StartMqtt();
-                        if (remoteIsConnected)
-                        {
-                            await mqttClient_A.SubscribeAsync(Topic1);
-                        }
-                    }
-                }
-                catch { }
-            }
-        }
+//        static bool isSubscribeSuccess;
+//        static async Task SubscribeTopics()
+//        {
+//            if (remoteIsConnected && !isSubscribeSuccess)
+//            {
+//                try
+//                {
+//                    var Topic1 = $"/BusGateWayToApp/{mqttGatewayMAC}/Common/Json";
+//                    try
+//                    {
+//                        await mqttClient_A.SubscribeAsync(Topic1);
+//                    }
+//                    catch (Exception ex)
+//                    {
+//                        await DisConnectRemoteMqttClient(ex.Message);
+//                        await StartMqtt();
+//                        if (remoteIsConnected)
+//                        {
+//                            await mqttClient_A.SubscribeAsync(Topic1);
+//                        }
+//                    }
+//                }
+//                catch { }
+//            }
+//        }
 
-        static void InitMqtt()
-        {
-            new System.Threading.Thread(async () =>
-            {
-                while (true)
-                {
-                    try
-                    {
-                        System.Threading.Thread.Sleep(1000);
-                        //if (!CommonPage.IsRemote)
-                        //    continue;
-                        if (remoteIsConnected)
-                            continue;
-                        await StartMqtt();
-                        await SubscribeTopics();
-                    }
-                    catch { }
-                }
-            })
-            { IsBackground = true }.Start();
-        }
+//        static void InitMqtt()
+//        {
+//            new System.Threading.Thread(async () =>
+//            {
+//                while (true)
+//                {
+//                    try
+//                    {
+//                        System.Threading.Thread.Sleep(1000);
+//                        //if (!CommonPage.IsRemote)
+//                        //    continue;
+//                        if (remoteIsConnected)
+//                            continue;
+//                        await StartMqtt();
+//                        await SubscribeTopics();
+//                    }
+//                    catch { }
+//                }
+//            })
+//            { IsBackground = true }.Start();
+//        }
 
-        /// <summary>
-        /// 鍚姩A鍗忚Mqtt
-        /// </summary>
-        public static async Task StartMqtt()
-        {
-            try
-            {
-                if (remoteIsConnected)
-                    return;
-                if (onConnection)
-                    return;
-                onConnection = true;
-                new System.Threading.Thread(async () =>
-                {
-                    if (remoteIsConnected)
-                        return;
-                    try
-                    {
-                        if (mqttClient_A == null)
-                        {
-                            mqttClient_A = new MqttFactory().CreateMqttClient();
-                            mqttClient_A.UseApplicationMessageReceivedHandler(async e =>
-                            {
-                                var aesDecryptTopic = e.ApplicationMessage.Topic;
-                                var aesDecryptPayload = e.ApplicationMessage.Payload;
-                                MainPage.Log(aesDecryptTopic);
-                                MainPage.Log($"Des Topic={aesDecryptTopic}");
-                            });
+//        /// <summary>
+//        /// 鍚姩A鍗忚Mqtt
+//        /// </summary>
+//        public static async Task StartMqtt()
+//        {
+//            try
+//            {
+//                if (remoteIsConnected)
+//                    return;
+//                if (onConnection)
+//                    return;
+//                onConnection = true;
+//                new System.Threading.Thread(async () =>
+//                {
+//                    MainPage.Log($"mqtt 绾跨▼鍚姩 : {DateTime.Now}");
+//                    if (remoteIsConnected)
+//                        return;
+//                    try
+//                    {
+//                        if (mqttClient_A == null)
+//                        {
+//                            mqttClient_A = new MqttFactory().CreateMqttClient();
+//                            mqttClient_A.UseApplicationMessageReceivedHandler(async e =>
+//                            {
+//                                var aesDecryptTopic = e.ApplicationMessage.Topic;
+//                                var aesDecryptPayload = e.ApplicationMessage.Payload;
+//                                MainPage.Log(aesDecryptTopic);
+//                                MainPage.Log($"Des Topic={aesDecryptTopic}");
+//                            });
 
-                            mqttClient_A.UseConnectedHandler(async (e) =>
-                            {
-                                MainPage.Log("mqtt connected !!");
-                                onConnection = false;
-                            });
-                        }
-                        try
-                        {
-                            int readCount = 0;
-                            BusSocket.Stop();
-                            System.Threading.Thread.Sleep(1000);
-                            BusSocket.Start(6688);
-                            System.Threading.Thread.Sleep(1000);
-                            Control.ReadGatewayIPAddress();
-                            while (true)
-                            {
-                                if (!string.IsNullOrEmpty(mqttClientIP))
-                                {
-                                    break;
-                                }
-                                else if (readCount > 10)
-                                {
-                                    onConnection = false;
-                                    return;
-                                }
-                                else
-                                {
-                                    Control.ReadGatewayIPAddress();
-                                    System.Threading.Thread.Sleep(200);
-                                }
-                            }
-                            BusSocket.Stop();
-                            System.Threading.Thread.Sleep(1000);
-                            BusSocket.Start(6000);
-                            System.Threading.Thread.Sleep(1000);
+//                            mqttClient_A.UseConnectedHandler(async (e) =>
+//                            {
+//                                MainPage.Log("mqtt connected !!");
+//                                onConnection = false;
+//                            });
+//                        }
+//                        try
+//                        {
+//                            int readCount = 0;
+//                            BusSocket.Stop();
+//                            System.Threading.Thread.Sleep(1000);
+//                            BusSocket.Start();
+//                            System.Threading.Thread.Sleep(1000);
+//                            Control.ReadGatewayIPAddress();
+//                            while (true)
+//                            {
+//                                if (!string.IsNullOrEmpty(mqttClientIP))
+//                                {
+//                                    break;
+//                                }
+//                                else if (readCount > 10)
+//                                {
+//                                    onConnection = false;
+//                                    return;
+//                                }
+//                                else
+//                                {
+//                                    Control.ReadGatewayIPAddress();
+//                                    System.Threading.Thread.Sleep(200);
+//                                }
+//                            }
+//                            BusSocket.Stop();
+//                            //System.Threading.Thread.Sleep(1000);
+//                            //BusSocket.Start(6000);
+//                            //System.Threading.Thread.Sleep(1000);
 
-                            var options = new MqttClientOptionsBuilder()//MQTT杩炴帴鍙傛暟濉厖
-                                .WithClientId(Guid.NewGuid().ToString().Substring(0, 5))//瀹㈡埛绔疘D
-                                .WithTcpServer(mqttClientIP, 1883)//MQTTServerIP.Text, Int32.Parse(MQTTServerPort.Text.ToString()))//TCP鏈嶅姟绔�  1883  锛屽嵆MQTT鏈嶅姟绔�
-                                .WithCredentials("", "")//"", "")//鍑瘉  甯愬彿 瀵嗙爜
-                                .WithCommunicationTimeout(new TimeSpan(0, 0, 60)) //閲嶈繛瓒呮椂鏃堕棿锛岄粯璁�5s
-                                .WithKeepAlivePeriod(new TimeSpan(0, 0, 15)) //淇濇寔杩炴帴鏃堕棿锛岄粯璁�5s锛屽績璺冲寘
-                                .Build();
-                            await mqttClient_A.ConnectAsync(options);
-                            remoteIsConnected = true;
-                        }
-                        catch { }
-                    }
-                    catch (Exception ex)
-                    {
-                    }
-                    finally
-                    {
-                        onConnection = false;
-                    }
-                })
-                { IsBackground = true }.Start();
-            }
-            catch (Exception ex)
-            {
-                MainPage.Log("============>" + ex.Message);
-            }
-        }
+//                            var options = new MqttClientOptionsBuilder()//MQTT杩炴帴鍙傛暟濉厖
+//                                .WithClientId(Guid.NewGuid().ToString().Substring(0, 5))//瀹㈡埛绔疘D
+//                                .WithTcpServer(mqttClientIP, 8586)//MQTTServerIP.Text, Int32.Parse(MQTTServerPort.Text.ToString()))//TCP鏈嶅姟绔�  1883  锛屽嵆MQTT鏈嶅姟绔�
+//                                .WithCredentials("", "")//"", "")//鍑瘉  甯愬彿 瀵嗙爜
+//                                .WithCommunicationTimeout(new TimeSpan(0, 0, 60)) //閲嶈繛瓒呮椂鏃堕棿锛岄粯璁�5s
+//                                .WithKeepAlivePeriod(new TimeSpan(0, 0, 15)) //淇濇寔杩炴帴鏃堕棿锛岄粯璁�5s锛屽績璺冲寘
+//                                .Build();
+//                            await mqttClient_A.ConnectAsync(options);
+//                            remoteIsConnected = true;
+//                        }
+//                        catch { }
+//                    }
+//                    catch (Exception ex)
+//                    {
+//                    }
+//                    finally
+//                    {
+//                        onConnection = false;
+//                    }
+//                })
+//                { IsBackground = true }.Start();
+//            }
+//            catch (Exception ex)
+//            {
+//                MainPage.Log("============>" + ex.Message);
+//            }
+//        }
 
 
 
 
-        /// <summary>
-        /// 
-        /// </summary>
-        /// <param name="message">闄勫姞鏁版嵁鍖�</param>
-        /// <param name="optionType">鎿嶄綔绫诲瀷锛�0=缃戝叧鎺у埗锛�1=璁㈤槄缃戝叧鏁版嵁;2=璁㈤槄缃戝叧涓婄嚎鏁版嵁</param>
-        /// <returns></returns>
-        public static async Task MqttRemoteSend(byte[] message)
-        {
-            try
-            {
-                if (mqttClient_A == null || !mqttClient_A.IsConnected)
-                {
-                    await StartMqtt();
-                }
-                if (!mqttClient_A.IsConnected)
-                {
-                    return;
-                }
-                var topicName = $"/AppToBusGateWay/{mqttGatewayMAC}/Common/Json";
-                var m = new MqttApplicationMessage { Topic = topicName, Payload = message, Retain = false, QualityOfServiceLevel = MQTTnet.Protocol.MqttQualityOfServiceLevel.ExactlyOnce };
-                await mqttClient_A?.PublishAsync(m);
-            }
-            catch (Exception e)
-            {
-            }
-        }
-    }
-}
+//        /// <summary>
+//        /// 
+//        /// </summary>
+//        /// <param name="message">闄勫姞鏁版嵁鍖�</param>
+//        /// <param name="optionType">鎿嶄綔绫诲瀷锛�0=缃戝叧鎺у埗锛�1=璁㈤槄缃戝叧鏁版嵁;2=璁㈤槄缃戝叧涓婄嚎鏁版嵁</param>
+//        /// <returns></returns>
+//        public static async Task MqttRemoteSend(byte[] message)
+//        {
+//            try
+//            {
+//                if (mqttClient_A == null || !mqttClient_A.IsConnected)
+//                {
+//                    await StartMqtt();
+//                }
+//                if (!mqttClient_A.IsConnected)
+//                {
+//                    return;
+//                }
+//                var topicName = $"/AppToBusGateWay/{mqttGatewayMAC}/Common/Json";
+//                var m = new MqttApplicationMessage { Topic = topicName, Payload = message, Retain = false, QualityOfServiceLevel = MQTTnet.Protocol.MqttQualityOfServiceLevel.ExactlyOnce };
+//                await mqttClient_A?.PublishAsync(m);
+//            }
+//            catch (Exception e)
+//            {
+//            }
+//        }
+//    }
+//}

--
Gitblit v1.8.0