瀏覽代碼

优化底层通信 断线重连逻辑

Shun 2 年之前
父節點
當前提交
69a1908c87

+ 1 - 1
src/YSAI.DAQ/YSAI.Core/YSAI.Core.csproj

@@ -5,7 +5,7 @@
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
     <GeneratePackageOnBuild>True</GeneratePackageOnBuild>
-    <Version>1.0.0.38</Version>
+    <Version>1.0.0.39</Version>
     <Authors>Shun</Authors>
     <Company>YSAI</Company>
     <Product>SCADA</Product>

+ 1 - 1
src/YSAI.DAQ/YSAI.Core/communication/net/tcp/client/TcpClientOperate.cs

@@ -157,7 +157,7 @@ namespace YSAI.Core.communication.net.tcp.client
                                 ReconnectionCount++;
                             }
                         }
-                        if (ReconnectionCount > 1)
+                        else if (ReconnectionCount > 1)
                         {
                             OnEventHandler(this, new EventResult(true, $"[{ClassName}]断线重连成功"));  //数据传递出去
                             ReconnectionCount = 1;

+ 1 - 1
src/YSAI.DAQ/YSAI.Core/communication/net/ws/client/WsClientOperate.cs

@@ -147,7 +147,7 @@ namespace YSAI.Core.communication.net.ws.client
                                 ReconnectionCount++;
                             }
                         }
-                        if (ReconnectionCount > 1)
+                        else if (ReconnectionCount > 1)
                         {
                             OnEventHandler(this, new EventResult(true, $"[{ClassName}]断线重连成功"));  //数据传递出去
                             ReconnectionCount = 1;

+ 60 - 38
src/YSAI.DAQ/YSAI.Test.All/Program.cs

@@ -3,7 +3,29 @@ using YSAI.Core.communication.net.tcp.client;
 using YSAI.Core.communication.net.tcp.service;
 using YSAI.Core.data;
 
+TcpClientOperate tcpClientOperate = TcpClientOperate.Instance(new TcpClientData.Basics
+{
+    Ip = "127.0.0.1",
+    Port = 1100,
+    InterruptReconnection = true,
+    SendWait = true,
+    SendWaitInterval = 5000
+});
+tcpClientOperate.OnEvent += TcpClientOperate_OnEvent;
+OperateResult operateResult = tcpClientOperate.On();
+Console.WriteLine(operateResult.Message);
+
+while (true)
+{
+    string message = Console.ReadLine();
+    operateResult = tcpClientOperate.Send(Encoding.Default.GetBytes(message));
+    Console.WriteLine(operateResult.Message);
+}
 
+void TcpClientOperate_OnEvent(object? sender, EventResult e)
+{
+    Console.WriteLine(e.Message);
+};
 
 //Console.WriteLine(Encoding.Default.GetString((byte[])ByteTool.HexStringToByteArray("58 44 34 20 53 20 20 20 20 20 20 35 2E 30 32 33 20 67 20 33 20 31 20 30 20 30 0D 0A")));;
 
@@ -95,53 +117,53 @@ using YSAI.Core.data;
 //}
 
 
-TcpServiceOperate tcpServiceOperate = TcpServiceOperate.Instance(new TcpServiceData.Basics
-{
-    Ip = "127.0.0.1",
-    Port = 12345,
-    MaxNumber = 1000
-});
+//TcpServiceOperate tcpServiceOperate = TcpServiceOperate.Instance(new TcpServiceData.Basics
+//{
+//    Ip = "127.0.0.1",
+//    Port = 12345,
+//    MaxNumber = 1000
+//});
 
-tcpServiceOperate.OnEvent += WsServiceOperate_OnEvent;
-OperateResult operateResult = tcpServiceOperate.On();
-Console.WriteLine(operateResult.Message);
+//tcpServiceOperate.OnEvent += WsServiceOperate_OnEvent;
+//OperateResult operateResult = tcpServiceOperate.On();
+//Console.WriteLine(operateResult.Message);
 
 
-TcpClientOperate wsClientOperate = TcpClientOperate.Instance(new TcpClientData.Basics
-{
-    Ip = "127.0.0.1",
-    Port = 1234,
-    InterruptReconnection = true
-});
-wsClientOperate.OnEvent += WsServiceOperate_OnEvent;
-operateResult = wsClientOperate.On();
-Console.WriteLine(operateResult.Message);
+//TcpClientOperate wsClientOperate = TcpClientOperate.Instance(new TcpClientData.Basics
+//{
+//    Ip = "127.0.0.1",
+//    Port = 1234,
+//    InterruptReconnection = true
+//});
+//wsClientOperate.OnEvent += WsServiceOperate_OnEvent;
+//operateResult = wsClientOperate.On();
+//Console.WriteLine(operateResult.Message);
 
 
-while (true)
-{
-    for (int i = 0; i < 1; i++)
-    {
-        string str = Console.ReadLine();
+//while (true)
+//{
+//    for (int i = 0; i < 1; i++)
+//    {
+//        string str = Console.ReadLine();
 
-        operateResult = tcpServiceOperate.Send(Encoding.Default.GetBytes(str));
-        Console.WriteLine(operateResult.Message);
+//        operateResult = tcpServiceOperate.Send(Encoding.Default.GetBytes(str));
+//        Console.WriteLine(operateResult.Message);
 
-        operateResult = wsClientOperate.Send(Encoding.Default.GetBytes(str));
-        Console.WriteLine(operateResult.Message);
-    }
+//        operateResult = wsClientOperate.Send(Encoding.Default.GetBytes(str));
+//        Console.WriteLine(operateResult.Message);
+//    }
 
-    Console.ReadLine();
-    operateResult = tcpServiceOperate.Off();
-    Console.WriteLine(operateResult.Message);
-    operateResult = wsClientOperate.Off();
-    Console.WriteLine(operateResult.Message);
-}
+//    Console.ReadLine();
+//    operateResult = tcpServiceOperate.Off();
+//    Console.WriteLine(operateResult.Message);
+//    operateResult = wsClientOperate.Off();
+//    Console.WriteLine(operateResult.Message);
+//}
 
-void WsServiceOperate_OnEvent(object? sender, EventResult e)
-{
-    Console.WriteLine("事件数据:" + e.Message);
-}
+//void WsServiceOperate_OnEvent(object? sender, EventResult e)
+//{
+//    Console.WriteLine("事件数据:" + e.Message);
+//}
 
 //WsServiceOperate wsServiceOperate = WsServiceOperate.Instance(new WsServiceData.Basics
 //{