From 4be93491896959734c5a313d7aa6f9a7d48c69f1 Mon Sep 17 00:00:00 2001 From: smallchi <564952747@qq.com> Date: Fri, 5 Jul 2019 11:15:07 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=A2=9E=E5=8A=A0=E5=85=AC=E5=85=B1=E5=B1=9E?= =?UTF-8?q?=E6=80=A7=E9=85=8D=E7=BD=AE=202.=E4=BF=AE=E6=94=B9=E8=BD=AC?= =?UTF-8?q?=E5=8F=91=E6=96=AD=E7=BA=BF=E9=87=8D=E8=BF=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 9 ++++++ .../JT1078SourcePackageDispatcherDefault.cs | 28 +++++++++++++++---- .../JT1078.DotNetty.Core.csproj | 12 ++++++-- .../JT1078.DotNetty.Tcp.csproj | 11 ++++++-- .../JT1078.DotNetty.Udp.csproj | 8 ++++-- src/JT1078DotNetty.sln | 5 ++++ src/SharedProperties.props | 19 +++++++++++++ 7 files changed, 80 insertions(+), 12 deletions(-) create mode 100644 src/SharedProperties.props diff --git a/README.md b/README.md index 6c3aeb7..f3fd2c7 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,11 @@ # JT1078DotNetty + JT1078DotNetty + +## NuGet安装 + +| Package Name | Version | Downloads | +| --------------------- | -------------------------------------------------- | --------------------------------------------------- | +| Install-Package JT1078.DotNetty.Core | ![JT1078.DotNetty.Core](https://img.shields.io/nuget/v/JT1078.DotNetty.Core.svg) | ![JT1078.DotNetty.Core](https://img.shields.io/nuget/dt/JT1078.DotNetty.Core.svg) | +| Install-Package JT1078.DotNetty.Tcp | ![JT1078.DotNetty.Tcp](https://img.shields.io/nuget/v/JT1078.DotNetty.Tcp.svg) | ![JT1078.DotNetty.Tcp](https://img.shields.io/nuget/dt/JT1078.DotNetty.Tcp.svg) | +| Install-Package JT1078.DotNetty.Udp | ![JT1078.DotNetty.Udp](https://img.shields.io/nuget/v/JT1078.DotNetty.Udp.svg) | ![JT1078.DotNetty.Udp](https://img.shields.io/nuget/dt/JT1078.DotNetty.Udp.svg) | diff --git a/src/JT1078.DotNetty.Core/Impl/JT1078SourcePackageDispatcherDefault.cs b/src/JT1078.DotNetty.Core/Impl/JT1078SourcePackageDispatcherDefault.cs index 1a6d353..63103c8 100644 --- a/src/JT1078.DotNetty.Core/Impl/JT1078SourcePackageDispatcherDefault.cs +++ b/src/JT1078.DotNetty.Core/Impl/JT1078SourcePackageDispatcherDefault.cs @@ -28,6 +28,7 @@ namespace JT1078.DotNetty.Core.Impl this.optionsMonitor = optionsMonitor; timer = new System.Timers.Timer(10000); timer.Elapsed += new ElapsedEventHandler(timer_Elapsed); + timer.AutoReset = false; timer.Start(); InitialDispatcherClient(); } @@ -47,6 +48,8 @@ namespace JT1078.DotNetty.Core.Impl else { logger.LogError($"{item}链接已关闭"); + item.Value.Close(); + item.Value.Dispose(); channeldic.TryRemove(item.Key, out _); reconnectionQueue.Enqueue(item.Key); } @@ -54,6 +57,8 @@ namespace JT1078.DotNetty.Core.Impl catch (Exception ex) { logger.LogError($"{item}发送数据出现异常:{ex}"); + item.Value.Close(); + item.Value.Dispose(); reconnectionQueue.Enqueue(item.Key); channeldic.TryRemove(item.Key, out _); } @@ -83,12 +88,25 @@ namespace JT1078.DotNetty.Core.Impl { timer.Stop(); Thread.CurrentThread.IsBackground = true; - var ip = reconnectionQueue.Dequeue(); - if (!string.IsNullOrEmpty(ip)) + try { - AddRemoteServsers(new List() { ip }); + if (reconnectionQueue.Count > 0) + { + var ip = reconnectionQueue.Dequeue(); + if (!string.IsNullOrEmpty(ip)) + { + AddRemoteServsers(new List() { ip }); + } + } + } + catch (Exception ex) + { + logger.LogError(ex, ""); + } + finally + { + timer.Start(); } - timer.Start(); } /// @@ -140,7 +158,6 @@ namespace JT1078.DotNetty.Core.Impl /// /// 动态添加远程服务器 /// - /// /// private void AddRemoteServsers(List lastRemoteServers) { @@ -157,6 +174,7 @@ namespace JT1078.DotNetty.Core.Impl } else { + client.Dispose(); reconnectionQueue.Enqueue(item); } } diff --git a/src/JT1078.DotNetty.Core/JT1078.DotNetty.Core.csproj b/src/JT1078.DotNetty.Core/JT1078.DotNetty.Core.csproj index dd57a78..46d7c19 100644 --- a/src/JT1078.DotNetty.Core/JT1078.DotNetty.Core.csproj +++ b/src/JT1078.DotNetty.Core/JT1078.DotNetty.Core.csproj @@ -1,10 +1,13 @@  - + netstandard2.0 + JT1078.DotNetty.Core + JT1078.DotNetty.Core + 基于DotNetty实现的JT1078DotNetty的核心库 + 基于DotNetty实现的JT1078DotNetty的核心库 - @@ -16,5 +19,8 @@ - + + + + diff --git a/src/JT1078.DotNetty.Tcp/JT1078.DotNetty.Tcp.csproj b/src/JT1078.DotNetty.Tcp/JT1078.DotNetty.Tcp.csproj index 7c229d6..954b37d 100644 --- a/src/JT1078.DotNetty.Tcp/JT1078.DotNetty.Tcp.csproj +++ b/src/JT1078.DotNetty.Tcp/JT1078.DotNetty.Tcp.csproj @@ -1,7 +1,15 @@  - + netstandard2.0 + JT1078.DotNetty.Tcp + JT1078.DotNetty.Tcp + 基于DotNetty实现的JT1078DotNetty的Tcp服务 + 基于DotNetty实现的JT1078DotNetty的Tcp服务 + https://github.com/SmallChi/JT1078DotNetty + https://github.com/SmallChi/JT1078DotNetty + https://github.com/SmallChi/JT1078DotNetty/blob/master/LICENSE + https://github.com/SmallChi/JT1078DotNetty/blob/master/LICENSE @@ -18,5 +26,4 @@ - diff --git a/src/JT1078.DotNetty.Udp/JT1078.DotNetty.Udp.csproj b/src/JT1078.DotNetty.Udp/JT1078.DotNetty.Udp.csproj index a91073d..113f145 100644 --- a/src/JT1078.DotNetty.Udp/JT1078.DotNetty.Udp.csproj +++ b/src/JT1078.DotNetty.Udp/JT1078.DotNetty.Udp.csproj @@ -1,7 +1,11 @@ - - + + netstandard2.0 + JT1078.DotNetty.Udp + JT1078.DotNetty.Udp + 基于DotNetty实现的JT1078DotNetty的Udp服务 + 基于DotNetty实现的JT1078DotNetty的Udp服务 diff --git a/src/JT1078DotNetty.sln b/src/JT1078DotNetty.sln index 3ea800e..aa6c2f5 100644 --- a/src/JT1078DotNetty.sln +++ b/src/JT1078DotNetty.sln @@ -11,6 +11,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JT1078.DotNetty.TestHosting EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JT1078.DotNetty.Udp", "JT1078.DotNetty.Udp\JT1078.DotNetty.Udp.csproj", "{6405D7FA-3B6E-4545-827E-BA13EB5BB268}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{1C26DF6A-2978-46B7-B921-BB7776CC6EE8}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -37,6 +39,9 @@ Global GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {DCCA6BB7-C2B5-490A-B43F-C28ABEA922D7} = {1C26DF6A-2978-46B7-B921-BB7776CC6EE8} + EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {07ED058A-2CEB-43FD-8478-7EEC7E56F868} EndGlobalSection diff --git a/src/SharedProperties.props b/src/SharedProperties.props new file mode 100644 index 0000000..05232f3 --- /dev/null +++ b/src/SharedProperties.props @@ -0,0 +1,19 @@ + + + 7.3 + Copyright 2019. + SmallChi(Koike) + https://github.com/SmallChi/JT1078DotNetty + https://github.com/SmallChi/JT1078DotNetty + https://github.com/SmallChi/JT1078DotNetty/blob/master/LICENSE + https://github.com/SmallChi/JT1078DotNetty/blob/master/LICENSE + false + 1.0.0-preview1 + false + LICENSE + true + + + + +