From 53feb797845068d8fb0034026a592f580969fad4 Mon Sep 17 00:00:00 2001 From: TK Date: Wed, 30 Jan 2019 18:38:43 +0800 Subject: [PATCH] =?UTF-8?q?1=EF=BC=8C=E6=96=B0=E5=A2=9Esession=E5=8F=91?= =?UTF-8?q?=E5=B8=83=E8=AE=A2=E9=98=85=E6=8E=A5=E5=8F=A3=202=EF=BC=8C?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=8E=9F=E5=8C=85=E8=BD=AC=E5=8F=91=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=203=EF=BC=8C=E6=96=B0=E5=A2=9E=E5=85=AC=E5=85=B1?= =?UTF-8?q?=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Dtos/JTNEDefaultResultDto.cs | 15 ++++ .../Dtos/JTNEIPAddressDto.cs | 35 ++++++++ .../Dtos/JTNEResultDto.cs | 29 ++++++ .../Dtos/JTNESystemCollectInfoDto.cs | 33 +++++++ .../Dtos/JTNETcpSessionInfoDto.cs | 26 ++++++ .../Dtos/JTNETrafficInfoDto.cs | 20 +++++ .../Dtos/JTNEUdpSessionInfoDto.cs | 27 ++++++ .../Dtos/JTNEUnificationSendRequestDto.cs | 16 ++++ .../IJTNESessionPublishing.cs | 15 ++++ .../IJTNESourcePackageDispatcher.cs | 18 ++++ .../JTNE.DotNetty.Abstractions.csproj | 7 ++ .../JTNEConstants.cs | 88 +++++++++++++++++++ src/JTNE.DotNetty.sln | 12 ++- 13 files changed, 338 insertions(+), 3 deletions(-) create mode 100644 src/JTNE.DotNetty.Abstractions/Dtos/JTNEDefaultResultDto.cs create mode 100644 src/JTNE.DotNetty.Abstractions/Dtos/JTNEIPAddressDto.cs create mode 100644 src/JTNE.DotNetty.Abstractions/Dtos/JTNEResultDto.cs create mode 100644 src/JTNE.DotNetty.Abstractions/Dtos/JTNESystemCollectInfoDto.cs create mode 100644 src/JTNE.DotNetty.Abstractions/Dtos/JTNETcpSessionInfoDto.cs create mode 100644 src/JTNE.DotNetty.Abstractions/Dtos/JTNETrafficInfoDto.cs create mode 100644 src/JTNE.DotNetty.Abstractions/Dtos/JTNEUdpSessionInfoDto.cs create mode 100644 src/JTNE.DotNetty.Abstractions/Dtos/JTNEUnificationSendRequestDto.cs create mode 100644 src/JTNE.DotNetty.Abstractions/IJTNESessionPublishing.cs create mode 100644 src/JTNE.DotNetty.Abstractions/IJTNESourcePackageDispatcher.cs create mode 100644 src/JTNE.DotNetty.Abstractions/JTNE.DotNetty.Abstractions.csproj create mode 100644 src/JTNE.DotNetty.Abstractions/JTNEConstants.cs diff --git a/src/JTNE.DotNetty.Abstractions/Dtos/JTNEDefaultResultDto.cs b/src/JTNE.DotNetty.Abstractions/Dtos/JTNEDefaultResultDto.cs new file mode 100644 index 0000000..251f58b --- /dev/null +++ b/src/JTNE.DotNetty.Abstractions/Dtos/JTNEDefaultResultDto.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace JTNE.DotNetty.Abstractions.Dtos +{ + class JTNEDefaultResultDto : JTNEResultDto + { + public JTNEDefaultResultDto() + { + Data = "Hello,JTNE WebAPI"; + Code = JTNEResultCode.Ok; + } + } +} diff --git a/src/JTNE.DotNetty.Abstractions/Dtos/JTNEIPAddressDto.cs b/src/JTNE.DotNetty.Abstractions/Dtos/JTNEIPAddressDto.cs new file mode 100644 index 0000000..714a530 --- /dev/null +++ b/src/JTNE.DotNetty.Abstractions/Dtos/JTNEIPAddressDto.cs @@ -0,0 +1,35 @@ +using System; +using System.Collections.Generic; +using System.Net; +using System.Text; + +namespace JTNE.DotNetty.Abstractions.Dtos +{ + public class JTNEIPAddressDto + { + public string Host { get; set; } + + public int Port { get; set; } + + public EndPoint endPoint; + + public EndPoint EndPoint + { + get + { + if (endPoint == null) + { + if (IPAddress.TryParse(Host, out IPAddress ip)) + { + endPoint = new IPEndPoint(ip, Port); + } + else + { + endPoint = new DnsEndPoint(Host, Port); + } + } + return endPoint; + } + } + } +} \ No newline at end of file diff --git a/src/JTNE.DotNetty.Abstractions/Dtos/JTNEResultDto.cs b/src/JTNE.DotNetty.Abstractions/Dtos/JTNEResultDto.cs new file mode 100644 index 0000000..43aa1dd --- /dev/null +++ b/src/JTNE.DotNetty.Abstractions/Dtos/JTNEResultDto.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace JTNE.DotNetty.Abstractions.Dtos +{ + public class JTNEResultDto + { + public JTNEResultDto() + { + Code = JTNEResultCode.Ok; + } + + public string Message { get; set; } + + public int Code { get; set; } + + public T Data { get; set; } + } + + public class JTNEResultCode + { + public const int Ok = 200; + public const int Empty = 201; + public const int NotFound = 404; + public const int Fail = 400; + public const int Error = 500; + } +} \ No newline at end of file diff --git a/src/JTNE.DotNetty.Abstractions/Dtos/JTNESystemCollectInfoDto.cs b/src/JTNE.DotNetty.Abstractions/Dtos/JTNESystemCollectInfoDto.cs new file mode 100644 index 0000000..9ef1747 --- /dev/null +++ b/src/JTNE.DotNetty.Abstractions/Dtos/JTNESystemCollectInfoDto.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace JTNE.DotNetty.Abstractions.Dtos +{ + public class JTNESystemCollectInfoDto + { + /// + /// 进程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/JTNE.DotNetty.Abstractions/Dtos/JTNETcpSessionInfoDto.cs b/src/JTNE.DotNetty.Abstractions/Dtos/JTNETcpSessionInfoDto.cs new file mode 100644 index 0000000..b415eb1 --- /dev/null +++ b/src/JTNE.DotNetty.Abstractions/Dtos/JTNETcpSessionInfoDto.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace JTNE.DotNetty.Abstractions.Dtos +{ + public class JTNETcpSessionInfoDto + { + /// + /// 最后上线时间 + /// + public DateTime LastActiveTime { get; set; } + /// + /// 上线时间 + /// + public DateTime StartTime { get; set; } + /// + /// 终端VIN + /// + public string Vin { get; set; } + /// + /// 远程ip地址 + /// + public string RemoteAddressIP { get; set; } + } +} diff --git a/src/JTNE.DotNetty.Abstractions/Dtos/JTNETrafficInfoDto.cs b/src/JTNE.DotNetty.Abstractions/Dtos/JTNETrafficInfoDto.cs new file mode 100644 index 0000000..ef35abc --- /dev/null +++ b/src/JTNE.DotNetty.Abstractions/Dtos/JTNETrafficInfoDto.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace JTNE.DotNetty.Abstractions.Dtos +{ + public class JTNETrafficInfoDto + { + /// + /// 总接收大小 + /// 单位KB + /// + public double TotalReceiveSize { get; set; } + /// + /// 总发送大小 + /// 单位KB + /// + public double TotalSendSize { get; set; } + } +} diff --git a/src/JTNE.DotNetty.Abstractions/Dtos/JTNEUdpSessionInfoDto.cs b/src/JTNE.DotNetty.Abstractions/Dtos/JTNEUdpSessionInfoDto.cs new file mode 100644 index 0000000..5edf9b6 --- /dev/null +++ b/src/JTNE.DotNetty.Abstractions/Dtos/JTNEUdpSessionInfoDto.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace JTNE.DotNetty.Abstractions.Dtos +{ + public class JTNEUdpSessionInfoDto + { + /// + /// 最后上线时间 + /// + public DateTime LastActiveTime { get; set; } + /// + /// 上线时间 + /// + public DateTime StartTime { get; set; } + /// + /// 终端VIN + /// + public string Vin { get; set; } + /// + /// 远程ip地址 + /// + public string RemoteAddressIP { get; set; } + } +} + diff --git a/src/JTNE.DotNetty.Abstractions/Dtos/JTNEUnificationSendRequestDto.cs b/src/JTNE.DotNetty.Abstractions/Dtos/JTNEUnificationSendRequestDto.cs new file mode 100644 index 0000000..028563f --- /dev/null +++ b/src/JTNE.DotNetty.Abstractions/Dtos/JTNEUnificationSendRequestDto.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace JTNE.DotNetty.Abstractions.Dtos +{ + /// + /// 统一下发请求参数 + /// + public class JTNEUnificationSendRequestDto + { + public string Vin { get; set; } + public byte[] Data { get; set; } + } +} + diff --git a/src/JTNE.DotNetty.Abstractions/IJTNESessionPublishing.cs b/src/JTNE.DotNetty.Abstractions/IJTNESessionPublishing.cs new file mode 100644 index 0000000..02e398a --- /dev/null +++ b/src/JTNE.DotNetty.Abstractions/IJTNESessionPublishing.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Threading.Tasks; + +namespace JTNE.DotNetty.Abstractions +{ + /// + /// 会话通知(在线/离线) + /// + public interface IJTNESessionPublishing + { + Task PublishAsync(string topicName, string value); + } +} diff --git a/src/JTNE.DotNetty.Abstractions/IJTNESourcePackageDispatcher.cs b/src/JTNE.DotNetty.Abstractions/IJTNESourcePackageDispatcher.cs new file mode 100644 index 0000000..ee765a8 --- /dev/null +++ b/src/JTNE.DotNetty.Abstractions/IJTNESourcePackageDispatcher.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Threading.Tasks; + +namespace JTNE.DotNetty.Abstractions +{ + public interface IJTNESourcePackageDispatcher + { + /// + /// 源包分发器 + /// 自定义源包分发器业务 + /// ConfigureServices: + /// services.Replace(new ServiceDescriptor(typeof(IJTNESourcePackageDispatcher),typeof(JTNESourcePackageDispatcherDefaultImpl),ServiceLifetime.Singleton)); + /// + Task SendAsync(byte[] data); + } +} diff --git a/src/JTNE.DotNetty.Abstractions/JTNE.DotNetty.Abstractions.csproj b/src/JTNE.DotNetty.Abstractions/JTNE.DotNetty.Abstractions.csproj new file mode 100644 index 0000000..9f5c4f4 --- /dev/null +++ b/src/JTNE.DotNetty.Abstractions/JTNE.DotNetty.Abstractions.csproj @@ -0,0 +1,7 @@ + + + + netstandard2.0 + + + diff --git a/src/JTNE.DotNetty.Abstractions/JTNEConstants.cs b/src/JTNE.DotNetty.Abstractions/JTNEConstants.cs new file mode 100644 index 0000000..0bb2a27 --- /dev/null +++ b/src/JTNE.DotNetty.Abstractions/JTNEConstants.cs @@ -0,0 +1,88 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace JTNE.DotNetty.Abstractions +{ + public class JTNEConstants + { + public const string SessionOnline = "JTNESessionOnline"; + + public const string SessionOffline = "JTNESessionOffline"; + + public static class JTNEWebApiRouteTable + { + public const string RouteTablePrefix = "/jtNEapi"; + + public const string SessionPrefix = "Session"; + + public const string TransmitPrefix = "Transmit"; + + public const string SystemCollectPrefix = "SystemCollect"; + + public const string TrafficPrefix = "Traffic"; + + public const string TcpPrefix = "Tcp"; + + public const string UdpPrefix = "Udp"; + + /// + ///获取当前系统进程使用率 + /// + public static string SystemCollectGet = $"{RouteTablePrefix}/{SystemCollectPrefix}/Get"; + /// + ///基于Tcp的添加转发过滤地址 + /// + public static string TransmitAdd = $"{RouteTablePrefix}/{TcpPrefix}/{TransmitPrefix}/Add"; + /// + /// 基于Tcp的删除转发过滤地址(不能删除在网关服务器配置文件配的地址) + /// + public static string TransmitRemove = $"{RouteTablePrefix}/{TcpPrefix}/{TransmitPrefix}/Remove"; + /// + ///基于Tcp的获取转发过滤地址信息集合 + /// + public static string TransmitGetAll = $"{RouteTablePrefix}/{TcpPrefix}/{TransmitPrefix}/GetAll"; + /// + /// 基于Tcp的包计数器 + /// + public static string GetTcpAtomicCounter = $"{RouteTablePrefix}/{TcpPrefix}/GetAtomicCounter"; + /// + /// 基于Tcp的会话服务集合 + /// + public static string SessionTcpGetAll = $"{RouteTablePrefix}/{TcpPrefix}/{SessionPrefix}/GetAll"; + /// + /// 基于Tcp的会话服务-通过设备终端号移除对应会话 + /// + public static string SessionTcpRemoveByTerminalPhoneNo = $"{RouteTablePrefix}/{TcpPrefix}/{SessionPrefix}/RemoveByTerminalPhoneNo"; + /// + /// 基于Tcp的统一下发信息 + /// + public static string UnificationTcpSend = $"{RouteTablePrefix}/{TcpPrefix}/UnificationSend"; + /// + /// 基于Tcp的流量服务获取 + /// + public static string TrafficTcpGet = $"{RouteTablePrefix}/{TcpPrefix}/{TrafficPrefix}/Get"; + + /// + /// 获取Udp包计数器 + /// + public static string GetUdpAtomicCounter = $"{RouteTablePrefix}/{UdpPrefix}/GetAtomicCounter"; + /// + /// 基于Udp的统一下发信息 + /// + public static string UnificationUdpSend = $"{RouteTablePrefix}/{UdpPrefix}/UnificationSend"; + /// + /// 基于Udp的会话服务集合 + /// + public static string SessionUdpGetAll = $"{RouteTablePrefix}/{UdpPrefix}/{SessionPrefix}/GetAll"; + /// + /// 基于Udp的会话服务-通过设备终端号移除对应会话 + /// + public static string SessionUdpRemoveByTerminalPhoneNo = $"{RouteTablePrefix}/{UdpPrefix}/{SessionPrefix}/RemoveByTerminalPhoneNo"; + /// + /// 基于Udp的流量服务获取 + ///