From c6e47b545e729e302b094ad9636a9728a2dfcabe Mon Sep 17 00:00:00 2001
From: SmallChi <564952747@qq.com>
Date: Sun, 24 Feb 2019 20:37:04 +0800
Subject: [PATCH] =?UTF-8?q?=E6=95=B4=E7=90=86=E5=8F=8A=E6=B7=BB=E5=8A=A080?=
=?UTF-8?q?9=E6=A8=A1=E5=9D=97?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Dtos/JT809SystemCollectInfoDto.cs | 33 +++++
.../IJT809SessionPublishing.cs | 12 ++
.../JT809.DotNetty.Abstractions.csproj | 7 ++
.../JT809Constants.cs | 25 ++++
.../Codecs/JT809TcpDecoder.cs | 20 ++++
.../JT809ClientConfiguration.cs | 31 +++++
.../Configurations/JT809Configuration.cs | 29 +++++
.../Converters/JsonIPAddressConverter.cs | 26 ++++
.../Converters/JsonIPEndPointConverter.cs | 32 +++++
.../Handlers/JT809MsgIdTcpHandlerBase.cs | 109 +++++++++++++++++
.../Interfaces/IVerifyCodeGenerator.cs | 14 +++
.../JT809SessionPublishingEmptyImpl.cs | 13 ++
.../VerifyCodeGeneratorDefaultImpl.cs | 15 +++
.../JT809.DotNetty.Core.csproj | 23 ++++
.../JT809CoreDotnettyExtensions.cs | 59 +++++++++
.../Links/SubordinateLinkClient.cs | 113 ++++++++++++++++++
.../Metadata/JT809AtomicCounter.cs | 49 ++++++++
.../Metadata/JT809Request.cs | 23 ++++
.../Metadata/JT809Response.cs | 27 +++++
.../Metadata/JT809TcpSession.cs | 28 +++++
.../JT809SimpleSystemCollectService.cs | 30 +++++
.../Services/JT809TcpAtomicCounterService.cs | 51 ++++++++
.../Session/JT809TcpSessionManager.cs | 108 +++++++++++++++++
.../Handlers/JT809MsgIdDefaultTcpHandler.cs | 18 +++
.../Handlers/JT809TcpConnectionHandler.cs | 98 +++++++++++++++
.../Handlers/JT809TcpServerHandler.cs | 83 +++++++++++++
.../JT809.DotNetty.Tcp.csproj | 11 ++
.../JT809TcpDotnettyExtensions.cs | 32 +++++
src/JT809.DotNetty.Tcp/JT809TcpServerHost.cs | 95 +++++++++++++++
.../JT809.DotNetty.Host.Test.csproj | 27 +++++
.../JT809.DotNetty.Host.Test/Program.cs | 54 +++++++++
.../JT809.DotNetty.Host.Test/appsettings.json | 18 +++
.../JT809.DotNetty.Tcp.Test.csproj | 31 +++++
.../JT809.DotNetty.Tcp.Test/TestBase.cs | 37 ++++++
.../JT809.DotNetty.Tcp.Test/appsettings.json | 18 +++
src/JT809.DotNetty.sln | 83 +++++++++++++
src/JT809.Protocol | 2 +-
src/JT809Netty.sln | 31 -----
38 files changed, 1483 insertions(+), 32 deletions(-)
create mode 100644 src/JT809.DotNetty.Abstractions/Dtos/JT809SystemCollectInfoDto.cs
create mode 100644 src/JT809.DotNetty.Abstractions/IJT809SessionPublishing.cs
create mode 100644 src/JT809.DotNetty.Abstractions/JT809.DotNetty.Abstractions.csproj
create mode 100644 src/JT809.DotNetty.Abstractions/JT809Constants.cs
create mode 100644 src/JT809.DotNetty.Core/Codecs/JT809TcpDecoder.cs
create mode 100644 src/JT809.DotNetty.Core/Configurations/JT809ClientConfiguration.cs
create mode 100644 src/JT809.DotNetty.Core/Configurations/JT809Configuration.cs
create mode 100644 src/JT809.DotNetty.Core/Converters/JsonIPAddressConverter.cs
create mode 100644 src/JT809.DotNetty.Core/Converters/JsonIPEndPointConverter.cs
create mode 100644 src/JT809.DotNetty.Core/Handlers/JT809MsgIdTcpHandlerBase.cs
create mode 100644 src/JT809.DotNetty.Core/Interfaces/IVerifyCodeGenerator.cs
create mode 100644 src/JT809.DotNetty.Core/Internal/JT809SessionPublishingEmptyImpl.cs
create mode 100644 src/JT809.DotNetty.Core/Internal/VerifyCodeGeneratorDefaultImpl.cs
create mode 100644 src/JT809.DotNetty.Core/JT809.DotNetty.Core.csproj
create mode 100644 src/JT809.DotNetty.Core/JT809CoreDotnettyExtensions.cs
create mode 100644 src/JT809.DotNetty.Core/Links/SubordinateLinkClient.cs
create mode 100644 src/JT809.DotNetty.Core/Metadata/JT809AtomicCounter.cs
create mode 100644 src/JT809.DotNetty.Core/Metadata/JT809Request.cs
create mode 100644 src/JT809.DotNetty.Core/Metadata/JT809Response.cs
create mode 100644 src/JT809.DotNetty.Core/Metadata/JT809TcpSession.cs
create mode 100644 src/JT809.DotNetty.Core/Services/JT809SimpleSystemCollectService.cs
create mode 100644 src/JT809.DotNetty.Core/Services/JT809TcpAtomicCounterService.cs
create mode 100644 src/JT809.DotNetty.Core/Session/JT809TcpSessionManager.cs
create mode 100644 src/JT809.DotNetty.Tcp/Handlers/JT809MsgIdDefaultTcpHandler.cs
create mode 100644 src/JT809.DotNetty.Tcp/Handlers/JT809TcpConnectionHandler.cs
create mode 100644 src/JT809.DotNetty.Tcp/Handlers/JT809TcpServerHandler.cs
create mode 100644 src/JT809.DotNetty.Tcp/JT809.DotNetty.Tcp.csproj
create mode 100644 src/JT809.DotNetty.Tcp/JT809TcpDotnettyExtensions.cs
create mode 100644 src/JT809.DotNetty.Tcp/JT809TcpServerHost.cs
create mode 100644 src/JT809.DotNetty.Tests/JT809.DotNetty.Host.Test/JT809.DotNetty.Host.Test.csproj
create mode 100644 src/JT809.DotNetty.Tests/JT809.DotNetty.Host.Test/Program.cs
create mode 100644 src/JT809.DotNetty.Tests/JT809.DotNetty.Host.Test/appsettings.json
create mode 100644 src/JT809.DotNetty.Tests/JT809.DotNetty.Tcp.Test/JT809.DotNetty.Tcp.Test.csproj
create mode 100644 src/JT809.DotNetty.Tests/JT809.DotNetty.Tcp.Test/TestBase.cs
create mode 100644 src/JT809.DotNetty.Tests/JT809.DotNetty.Tcp.Test/appsettings.json
create mode 100644 src/JT809.DotNetty.sln
delete mode 100644 src/JT809Netty.sln
diff --git a/src/JT809.DotNetty.Abstractions/Dtos/JT809SystemCollectInfoDto.cs b/src/JT809.DotNetty.Abstractions/Dtos/JT809SystemCollectInfoDto.cs
new file mode 100644
index 0000000..9dbb411
--- /dev/null
+++ b/src/JT809.DotNetty.Abstractions/Dtos/JT809SystemCollectInfoDto.cs
@@ -0,0 +1,33 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace JT809.DotNetty.Abstractions.Dtos
+{
+ public class JT809SystemCollectInfoDto
+ {
+ ///
+ /// 进程Id
+ ///
+ public int ProcessId { get; set; }
+ ///
+ /// 进程分配内存
+ /// 单位MB
+ ///
+ public double WorkingSet64 { get; set; }
+ ///
+ /// 进程分配内存峰值
+ /// 单位MB
+ ///
+ public double PeakWorkingSet64 { get; set; }
+ ///
+ /// 进程分配私有内存
+ /// 单位MB
+ ///
+ public double PrivateMemorySize64 { get; set; }
+ ///
+ /// 进程执行CPU总处理时间
+ ///
+ public TimeSpan CPUTotalProcessorTime { get; set; }
+ }
+}
diff --git a/src/JT809.DotNetty.Abstractions/IJT809SessionPublishing.cs b/src/JT809.DotNetty.Abstractions/IJT809SessionPublishing.cs
new file mode 100644
index 0000000..c86f05e
--- /dev/null
+++ b/src/JT809.DotNetty.Abstractions/IJT809SessionPublishing.cs
@@ -0,0 +1,12 @@
+using System.Threading.Tasks;
+
+namespace JT809.DotNetty.Abstractions
+{
+ ///
+ /// 会话通知(在线/离线)
+ ///
+ public interface IJT809SessionPublishing
+ {
+ Task PublishAsync(string topicName, string value);
+ }
+}
diff --git a/src/JT809.DotNetty.Abstractions/JT809.DotNetty.Abstractions.csproj b/src/JT809.DotNetty.Abstractions/JT809.DotNetty.Abstractions.csproj
new file mode 100644
index 0000000..9f5c4f4
--- /dev/null
+++ b/src/JT809.DotNetty.Abstractions/JT809.DotNetty.Abstractions.csproj
@@ -0,0 +1,7 @@
+
+
+
+ netstandard2.0
+
+
+
diff --git a/src/JT809.DotNetty.Abstractions/JT809Constants.cs b/src/JT809.DotNetty.Abstractions/JT809Constants.cs
new file mode 100644
index 0000000..f28f5b6
--- /dev/null
+++ b/src/JT809.DotNetty.Abstractions/JT809Constants.cs
@@ -0,0 +1,25 @@
+namespace JT809.DotNetty.Abstractions
+{
+ public static class JT809Constants
+ {
+ public const string SessionOnline= "JT809SessionOnline";
+
+ public const string SessionOffline = "JT809SessionOffline";
+
+ public static class JT809WebApiRouteTable
+ {
+ public const string RouteTablePrefix = "/jt809api";
+
+ public const string SessionPrefix = "Session";
+
+ public const string SystemCollectPrefix = "SystemCollect";
+
+ public const string TcpPrefix = "Tcp";
+
+ ///
+ ///获取当前系统进程使用率
+ ///
+ public static string SystemCollectGet = $"{RouteTablePrefix}/{SystemCollectPrefix}/Get";
+ }
+ }
+}
diff --git a/src/JT809.DotNetty.Core/Codecs/JT809TcpDecoder.cs b/src/JT809.DotNetty.Core/Codecs/JT809TcpDecoder.cs
new file mode 100644
index 0000000..35ccdab
--- /dev/null
+++ b/src/JT809.DotNetty.Core/Codecs/JT809TcpDecoder.cs
@@ -0,0 +1,20 @@
+using DotNetty.Buffers;
+using DotNetty.Codecs;
+using System.Collections.Generic;
+using DotNetty.Transport.Channels;
+using JT809.Protocol;
+
+namespace JT809.DotNetty.Core.Codecs
+{
+ public class JT809TcpDecoder : ByteToMessageDecoder
+ {
+ protected override void Decode(IChannelHandlerContext context, IByteBuffer input, List