diff --git a/doc/img/design_model.png b/doc/img/design_model.png index 297e9aa..207d690 100644 Binary files a/doc/img/design_model.png and b/doc/img/design_model.png differ diff --git a/simples/JT808.DotNetty.SimpleServer/Program.cs b/simples/JT808.DotNetty.SimpleServer/Program.cs index 65d730f..b51f6c9 100644 --- a/simples/JT808.DotNetty.SimpleServer/Program.cs +++ b/simples/JT808.DotNetty.SimpleServer/Program.cs @@ -36,8 +36,6 @@ namespace JT808.DotNetty.SimpleServer services.AddJT808Configure() .AddJT808NettyCore(hostContext.Configuration) .AddJT808TcpNettyHost() - // 自定义Tcp消息处理业务 - .ReplaceMsgIdHandler() .Builder(); }); diff --git a/src/JT808.DotNetty.Abstractions/Dtos/JT808SystemCollectInfoDto.cs b/src/JT808.DotNetty.Abstractions/Dtos/JT808SystemCollectInfoDto.cs deleted file mode 100644 index 23c883c..0000000 --- a/src/JT808.DotNetty.Abstractions/Dtos/JT808SystemCollectInfoDto.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace JT808.DotNetty.Abstractions.Dtos -{ - public class JT808SystemCollectInfoDto - { - /// - /// 进程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/JT808.DotNetty.Abstractions/Dtos/JT808TrafficInfoDto.cs b/src/JT808.DotNetty.Abstractions/Dtos/JT808TrafficInfoDto.cs deleted file mode 100644 index 594c355..0000000 --- a/src/JT808.DotNetty.Abstractions/Dtos/JT808TrafficInfoDto.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace JT808.DotNetty.Abstractions.Dtos -{ - public class JT808TrafficInfoDto - { - /// - /// 总接收大小 - /// 单位KB - /// - public double TotalReceiveSize { get; set; } - /// - /// 总发送大小 - /// 单位KB - /// - public double TotalSendSize { get; set; } - } -} diff --git a/src/JT808.DotNetty.Abstractions/JT808Constants.cs b/src/JT808.DotNetty.Abstractions/JT808Constants.cs index bc65121..db24035 100644 --- a/src/JT808.DotNetty.Abstractions/JT808Constants.cs +++ b/src/JT808.DotNetty.Abstractions/JT808Constants.cs @@ -12,32 +12,10 @@ 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的包计数器 /// @@ -54,11 +32,6 @@ /// 基于Tcp的统一下发信息 /// public static string UnificationTcpSend = $"{RouteTablePrefix}/{TcpPrefix}/UnificationSend"; - /// - /// 基于Tcp的流量服务获取 - /// - public static string TrafficTcpGet = $"{RouteTablePrefix}/{TcpPrefix}/{TrafficPrefix}/Get"; - /// /// 获取Udp包计数器 /// @@ -75,10 +48,6 @@ /// 基于Udp的会话服务-通过设备终端号移除对应会话 /// public static string SessionUdpRemoveByTerminalPhoneNo = $"{RouteTablePrefix}/{UdpPrefix}/{SessionPrefix}/RemoveByTerminalPhoneNo"; - /// - /// 基于Udp的流量服务获取 - /// logger; - private readonly JT808TrafficService jT808TrafficService; - - private readonly IJT808DownlinkPacket jT808DownlinkPacket; - private readonly JT808Serializer JT808Serializer; public JT808TcpEncoder( IJT808Config jT808Config, - ILoggerFactory loggerFactory, - JT808TrafficServiceFactory jT808TrafficServiceFactory, - IJT808DownlinkPacket jT808DownlinkPacket) + ILoggerFactory loggerFactory) { logger = loggerFactory.CreateLogger(); - this.jT808TrafficService = jT808TrafficServiceFactory.Create(JT808TransportProtocolType.tcp); - this.jT808DownlinkPacket = jT808DownlinkPacket; this.JT808Serializer = jT808Config.GetSerializer(); } @@ -43,8 +32,6 @@ namespace JT808.DotNetty.Core.Codecs try { var sendData = JT808Serializer.Serialize(message.Package, message.MinBufferSize); - jT808TrafficService.SendSize(sendData.Length); - jT808DownlinkPacket.ProcessorAsync(sendData, JT808TransportProtocolType.tcp); output.WriteBytes(Unpooled.WrappedBuffer(sendData)); } catch (JT808.Protocol.Exceptions.JT808Exception ex) @@ -58,8 +45,6 @@ namespace JT808.DotNetty.Core.Codecs } else if (message.HexData != null) { - jT808TrafficService.SendSize(message.HexData.Length); - jT808DownlinkPacket.ProcessorAsync(message.HexData, JT808TransportProtocolType.tcp); output.WriteBytes(Unpooled.WrappedBuffer(message.HexData)); } } diff --git a/src/JT808.DotNetty.Core/Impls/JT808DatagramPacketImpl.cs b/src/JT808.DotNetty.Core/Impls/JT808DatagramPacketImpl.cs index 71421f2..1a482ec 100644 --- a/src/JT808.DotNetty.Core/Impls/JT808DatagramPacketImpl.cs +++ b/src/JT808.DotNetty.Core/Impls/JT808DatagramPacketImpl.cs @@ -13,19 +13,15 @@ namespace JT808.DotNetty.Core.Impls { class JT808DatagramPacketImpl : IJT808DatagramPacket { - private readonly JT808TrafficService jT808TrafficService; private readonly IJT808DownlinkPacket jT808DownlinkPacket; public JT808DatagramPacketImpl( - JT808TrafficServiceFactory jT808TrafficServiceFactory, IJT808DownlinkPacket jT808DownlinkPacket) { this.jT808DownlinkPacket = jT808DownlinkPacket; - this.jT808TrafficService = jT808TrafficServiceFactory.Create(JT808TransportProtocolType.udp); } public DatagramPacket Create(byte[] message, EndPoint recipient) { - jT808TrafficService.SendSize(message.Length); jT808DownlinkPacket.ProcessorAsync(message, JT808TransportProtocolType.udp); return new DatagramPacket(Unpooled.WrappedBuffer(message), recipient); } diff --git a/src/JT808.DotNetty.Core/Impls/JT808DownlinkPacketEmptyImpl.cs b/src/JT808.DotNetty.Core/Impls/JT808DownlinkPacketEmptyImpl.cs deleted file mode 100644 index 7ba5593..0000000 --- a/src/JT808.DotNetty.Core/Impls/JT808DownlinkPacketEmptyImpl.cs +++ /dev/null @@ -1,17 +0,0 @@ -using JT808.DotNetty.Abstractions; -using JT808.DotNetty.Abstractions.Enums; -using System; -using System.Collections.Generic; -using System.Text; -using System.Threading.Tasks; - -namespace JT808.DotNetty.Core.Impls -{ - class JT808DownlinkPacketEmptyImpl : IJT808DownlinkPacket - { - public Task ProcessorAsync(byte[] data, JT808TransportProtocolType transportProtocolType) - { - return Task.CompletedTask; - } - } -} diff --git a/src/JT808.DotNetty.Core/Impls/JT808SourcePackageDispatcherEmptyImpl.cs b/src/JT808.DotNetty.Core/Impls/JT808SourcePackageDispatcherEmptyImpl.cs deleted file mode 100644 index f17ae75..0000000 --- a/src/JT808.DotNetty.Core/Impls/JT808SourcePackageDispatcherEmptyImpl.cs +++ /dev/null @@ -1,16 +0,0 @@ -using JT808.DotNetty.Abstractions; -using System.Threading.Tasks; - -namespace JT808.DotNetty.Core.Impls -{ - /// - /// 原包分发器默认空实现 - /// - public class JT808SourcePackageDispatcherEmptyImpl : IJT808SourcePackageDispatcher - { - public Task SendAsync(byte[] data) - { - return Task.CompletedTask; - } - } -} diff --git a/src/JT808.DotNetty.Core/Impls/JT808UplinkPacketEmptyImpl.cs b/src/JT808.DotNetty.Core/Impls/JT808UplinkPacketEmptyImpl.cs deleted file mode 100644 index 11a1b04..0000000 --- a/src/JT808.DotNetty.Core/Impls/JT808UplinkPacketEmptyImpl.cs +++ /dev/null @@ -1,17 +0,0 @@ -using JT808.DotNetty.Abstractions; -using JT808.DotNetty.Abstractions.Enums; -using System; -using System.Collections.Generic; -using System.Text; -using System.Threading.Tasks; - -namespace JT808.DotNetty.Core.Impls -{ - class JT808UplinkPacketEmptyImpl : IJT808UplinkPacket - { - public Task ProcessorAsync(byte[] data, JT808TransportProtocolType transportProtocolType) - { - return Task.CompletedTask; - } - } -} diff --git a/src/JT808.DotNetty.Core/Interfaces/IJT808NettyBuilder.cs b/src/JT808.DotNetty.Core/Interfaces/IJT808NettyBuilder.cs index 5f1600d..5ffc289 100644 --- a/src/JT808.DotNetty.Core/Interfaces/IJT808NettyBuilder.cs +++ b/src/JT808.DotNetty.Core/Interfaces/IJT808NettyBuilder.cs @@ -10,9 +10,6 @@ namespace JT808.DotNetty.Core.Interfaces public interface IJT808NettyBuilder { IJT808Builder JT808Builder { get; } - IJT808NettyBuilder ReplaceSourcePackageDispatcher() where T : IJT808SourcePackageDispatcher; - IJT808NettyBuilder ReplaceDownlinkPacket() where T: IJT808DownlinkPacket; - IJT808NettyBuilder ReplaceUplinkPacket() where T : IJT808UplinkPacket; IJT808NettyBuilder ReplaceSessionPublishing() where T : IJT808SessionPublishing; IJT808Builder Builder(); } diff --git a/src/JT808.DotNetty.Core/Interfaces/IJT808Session.cs b/src/JT808.DotNetty.Core/Interfaces/IJT808Session.cs new file mode 100644 index 0000000..22ad240 --- /dev/null +++ b/src/JT808.DotNetty.Core/Interfaces/IJT808Session.cs @@ -0,0 +1,20 @@ +using DotNetty.Transport.Channels; +using JT808.DotNetty.Abstractions.Enums; +using System; +using System.Collections.Generic; +using System.Text; + +namespace JT808.DotNetty.Core.Interfaces +{ + public interface IJT808Session + { + /// + /// 终端手机号 + /// + string TerminalPhoneNo { get; set; } + IChannel Channel { get; set; } + DateTime LastActiveTime { get; set; } + DateTime StartTime { get; set; } + JT808TransportProtocolType TransportProtocolType { get; set; } + } +} diff --git a/src/JT808.DotNetty.Core/Interfaces/IJT808TcpCustomMsgIdHandler.cs b/src/JT808.DotNetty.Core/Interfaces/IJT808TcpCustomMsgIdHandler.cs deleted file mode 100644 index 42fb845..0000000 --- a/src/JT808.DotNetty.Core/Interfaces/IJT808TcpCustomMsgIdHandler.cs +++ /dev/null @@ -1,20 +0,0 @@ -using JT808.DotNetty.Core.Metadata; -using System; -using System.Collections.Generic; -using System.Text; - -namespace JT808.DotNetty.Core.Interfaces -{ - public interface IJT808TcpCustomMsgIdHandler - { - IJT808Reply Proccesser(JT808Request request); - } - - public class JT808TcpCustomMsgIdHandlerEmpty : IJT808TcpCustomMsgIdHandler - { - public IJT808Reply Proccesser(JT808Request request) - { - return default; - } - } -} diff --git a/src/JT808.DotNetty.Core/Interfaces/IJT808TcpNettyBuilder.cs b/src/JT808.DotNetty.Core/Interfaces/IJT808TcpNettyBuilder.cs index 0e67228..9bd50c9 100644 --- a/src/JT808.DotNetty.Core/Interfaces/IJT808TcpNettyBuilder.cs +++ b/src/JT808.DotNetty.Core/Interfaces/IJT808TcpNettyBuilder.cs @@ -9,8 +9,6 @@ namespace JT808.DotNetty.Core.Interfaces { IJT808NettyBuilder Instance { get; } IJT808NettyBuilder Builder(); - IJT808TcpNettyBuilder ReplaceCustomMsgIdHandler() where T : IJT808TcpCustomMsgIdHandler; - IJT808TcpNettyBuilder ReplaceMsgIdHandler() where T : JT808MsgIdTcpHandlerBase; IJT808TcpNettyBuilder ReplaceSessionService() where T : IJT808TcpSessionService; IJT808TcpNettyBuilder ReplaceUnificationSendService() where T : IJT808UnificationTcpSendService; } diff --git a/src/JT808.DotNetty.Core/Interfaces/IJT808UdpCustomMsgIdHandler.cs b/src/JT808.DotNetty.Core/Interfaces/IJT808UdpCustomMsgIdHandler.cs deleted file mode 100644 index f9c4698..0000000 --- a/src/JT808.DotNetty.Core/Interfaces/IJT808UdpCustomMsgIdHandler.cs +++ /dev/null @@ -1,20 +0,0 @@ -using JT808.DotNetty.Core.Metadata; -using System; -using System.Collections.Generic; -using System.Text; - -namespace JT808.DotNetty.Core.Interfaces -{ - public interface IJT808UdpCustomMsgIdHandler - { - IJT808Reply Proccesser(JT808Request request); - } - - public class JT808UdpCustomMsgIdHandlerEmpty : IJT808UdpCustomMsgIdHandler - { - public IJT808Reply Proccesser(JT808Request request) - { - return default; - } - } -} diff --git a/src/JT808.DotNetty.Core/Interfaces/IJT808UdpNettyBuilder.cs b/src/JT808.DotNetty.Core/Interfaces/IJT808UdpNettyBuilder.cs index 8efc02b..7a55635 100644 --- a/src/JT808.DotNetty.Core/Interfaces/IJT808UdpNettyBuilder.cs +++ b/src/JT808.DotNetty.Core/Interfaces/IJT808UdpNettyBuilder.cs @@ -9,8 +9,6 @@ namespace JT808.DotNetty.Core.Interfaces { IJT808NettyBuilder Instance { get; } IJT808NettyBuilder Builder(); - IJT808UdpNettyBuilder ReplaceCustomMsgIdHandler() where T : IJT808UdpCustomMsgIdHandler; - IJT808UdpNettyBuilder ReplaceMsgIdHandler() where T : JT808MsgIdUdpHandlerBase; IJT808UdpNettyBuilder ReplaceSessionService() where T : IJT808UdpSessionService; IJT808UdpNettyBuilder ReplaceUnificationSendService() where T : IJT808UnificationUdpSendService; } diff --git a/src/JT808.DotNetty.Core/JT808.DotNetty.Core.csproj b/src/JT808.DotNetty.Core/JT808.DotNetty.Core.csproj index d538217..ce0e709 100644 --- a/src/JT808.DotNetty.Core/JT808.DotNetty.Core.csproj +++ b/src/JT808.DotNetty.Core/JT808.DotNetty.Core.csproj @@ -7,10 +7,6 @@ 基于DotNetty实现的JT808DotNetty的核心库 - - - - diff --git a/src/JT808.DotNetty.Core/JT808BackgroundService.cs b/src/JT808.DotNetty.Core/JT808BackgroundService.cs deleted file mode 100644 index cda2139..0000000 --- a/src/JT808.DotNetty.Core/JT808BackgroundService.cs +++ /dev/null @@ -1,74 +0,0 @@ -using Microsoft.Extensions.Hosting; -using System; -using System.Threading; -using System.Threading.Tasks; - -namespace JT808.DotNetty.Core -{ - /// - /// - /// - /// - public abstract class JT808BackgroundService : IHostedService, IDisposable - { - /// - /// 默认次日过期 - /// - public virtual TimeSpan DelayTimeSpan - { - get - { - DateTime current = DateTime.Now; - DateTime tmp = current.Date.AddDays(1).AddSeconds(-1); - return tmp.Subtract(current); - } - set { } - } - - private Task _executingTask; - - public abstract string ServiceName { get; } - - private readonly CancellationTokenSource _stoppingCts = new CancellationTokenSource(); - - protected abstract Task ExecuteAsync(CancellationToken stoppingToken); - - public void Dispose() - { - _stoppingCts.Cancel(); - } - - public virtual Task StartAsync(CancellationToken cancellationToken) - { - // Store the task we're executing - _executingTask = ExecuteAsync(_stoppingCts.Token); - // If the task is completed then return it, - // this will bubble cancellation and failure to the caller - if (_executingTask.IsCompleted) - { - return _executingTask; - } - // Otherwise it's running - return Task.CompletedTask; - } - - public virtual async Task StopAsync(CancellationToken cancellationToken) - { - // Stop called without start - if (_executingTask == null) - { - return; - } - try - { - // Signal cancellation to the executing method - _stoppingCts.Cancel(); - } - finally - { - // Wait until the task completes or the stop token triggers - await Task.WhenAny(_executingTask, Task.Delay(Timeout.Infinite,cancellationToken)); - } - } - } -} diff --git a/src/JT808.DotNetty.Core/JT808CoreDotnettyExtensions.cs b/src/JT808.DotNetty.Core/JT808CoreDotnettyExtensions.cs index 818fb72..1ac35bd 100644 --- a/src/JT808.DotNetty.Core/JT808CoreDotnettyExtensions.cs +++ b/src/JT808.DotNetty.Core/JT808CoreDotnettyExtensions.cs @@ -58,13 +58,7 @@ namespace JT808.DotNetty.Core } IJT808NettyBuilder nettyBuilder = new JT808NettyBuilderDefault(jt808Builder); nettyBuilder.JT808Builder.Services.Configure(configuration.GetSection("JT808Configuration")); - nettyBuilder.JT808Builder.Services.TryAddSingleton(); - nettyBuilder.JT808Builder.Services.TryAddSingleton(); - nettyBuilder.JT808Builder.Services.TryAddSingleton(); - nettyBuilder.JT808Builder.Services.TryAddSingleton(); nettyBuilder.JT808Builder.Services.TryAddSingleton(); - nettyBuilder.JT808Builder.Services.TryAddSingleton(); - nettyBuilder.JT808Builder.Services.TryAddSingleton(); return nettyBuilder; } @@ -83,13 +77,7 @@ namespace JT808.DotNetty.Core } IJT808NettyBuilder nettyBuilder = new JT808NettyBuilderDefault(jt808Builder); nettyBuilder.JT808Builder.Services.Configure(jt808Options); - nettyBuilder.JT808Builder.Services.TryAddSingleton(); - nettyBuilder.JT808Builder.Services.TryAddSingleton(); - nettyBuilder.JT808Builder.Services.TryAddSingleton(); - nettyBuilder.JT808Builder.Services.TryAddSingleton(); nettyBuilder.JT808Builder.Services.TryAddSingleton(); - nettyBuilder.JT808Builder.Services.TryAddSingleton(); - nettyBuilder.JT808Builder.Services.TryAddSingleton(); return nettyBuilder; } } diff --git a/src/JT808.DotNetty.Core/Jobs/JT808TcpAtomicCouterResetDailyJob.cs b/src/JT808.DotNetty.Core/Jobs/JT808TcpAtomicCouterResetDailyJob.cs deleted file mode 100644 index 54b438b..0000000 --- a/src/JT808.DotNetty.Core/Jobs/JT808TcpAtomicCouterResetDailyJob.cs +++ /dev/null @@ -1,38 +0,0 @@ -using JT808.DotNetty.Abstractions.Enums; -using JT808.DotNetty.Core.Services; -using Microsoft.Extensions.Logging; -using System.Threading; -using System.Threading.Tasks; - -namespace JT808.DotNetty.Core.Jobs -{ - internal class JT808TcpAtomicCouterResetDailyJob : JT808BackgroundService - { - private readonly ILogger _logger; - - private readonly JT808AtomicCounterService _jT808AtomicCounterService; - - public JT808TcpAtomicCouterResetDailyJob( - JT808AtomicCounterServiceFactory jT808AtomicCounterServiceFactory, - ILoggerFactory loggerFactory) - { - _jT808AtomicCounterService = jT808AtomicCounterServiceFactory.Create(JT808TransportProtocolType.tcp); - _logger =loggerFactory.CreateLogger(); - } - - public override string ServiceName => nameof(JT808TcpAtomicCouterResetDailyJob); - - protected override async Task ExecuteAsync(CancellationToken stoppingToken) - { - _logger.LogInformation($"{ServiceName} is starting."); - stoppingToken.Register(() => _logger.LogInformation($"{ServiceName} background task is stopping.")); - while (!stoppingToken.IsCancellationRequested) - { - _logger.LogInformation($"{ServiceName} task doing background work."); - _jT808AtomicCounterService.Reset(); - await Task.Delay(DelayTimeSpan, stoppingToken); - } - _logger.LogInformation($"{ServiceName} background task is stopping."); - } - } -} diff --git a/src/JT808.DotNetty.Core/Jobs/JT808TcpTrafficResetDailyJob.cs b/src/JT808.DotNetty.Core/Jobs/JT808TcpTrafficResetDailyJob.cs deleted file mode 100644 index 5e5dcad..0000000 --- a/src/JT808.DotNetty.Core/Jobs/JT808TcpTrafficResetDailyJob.cs +++ /dev/null @@ -1,38 +0,0 @@ -using JT808.DotNetty.Abstractions.Enums; -using JT808.DotNetty.Core.Services; -using Microsoft.Extensions.Logging; -using System.Threading; -using System.Threading.Tasks; - -namespace JT808.DotNetty.Core.Jobs -{ - internal class JT808TcpTrafficResetDailyJob : JT808BackgroundService - { - private readonly ILogger _logger; - - private readonly JT808TrafficService _jT808TrafficService; - - public JT808TcpTrafficResetDailyJob( - JT808TrafficServiceFactory jT808TrafficServiceFactory, - ILoggerFactory loggerFactory) - { - _jT808TrafficService = jT808TrafficServiceFactory.Create(JT808TransportProtocolType.tcp); - _logger =loggerFactory.CreateLogger(); - } - - public override string ServiceName => nameof(JT808TcpTrafficResetDailyJob); - - protected override async Task ExecuteAsync(CancellationToken stoppingToken) - { - _logger.LogInformation($"{ServiceName} is starting."); - stoppingToken.Register(() => _logger.LogInformation($"{ServiceName} background task is stopping.")); - while (!stoppingToken.IsCancellationRequested) - { - _logger.LogInformation($"{ServiceName} task doing background work."); - _jT808TrafficService.ResetSize(); - await Task.Delay(DelayTimeSpan, stoppingToken); - } - _logger.LogInformation($"{ServiceName} background task is stopping."); - } - } -} diff --git a/src/JT808.DotNetty.Core/Jobs/JT808UdpAtomicCouterResetDailyJob.cs b/src/JT808.DotNetty.Core/Jobs/JT808UdpAtomicCouterResetDailyJob.cs deleted file mode 100644 index 1cd668f..0000000 --- a/src/JT808.DotNetty.Core/Jobs/JT808UdpAtomicCouterResetDailyJob.cs +++ /dev/null @@ -1,38 +0,0 @@ -using JT808.DotNetty.Abstractions.Enums; -using JT808.DotNetty.Core.Services; -using Microsoft.Extensions.Logging; -using System.Threading; -using System.Threading.Tasks; - -namespace JT808.DotNetty.Core.Jobs -{ - internal class JT808UdpAtomicCouterResetDailyJob : JT808BackgroundService - { - private readonly ILogger _logger; - - private readonly JT808AtomicCounterService _jT808AtomicCounterService; - - public JT808UdpAtomicCouterResetDailyJob( - JT808AtomicCounterServiceFactory jT808AtomicCounterServiceFactory, - ILoggerFactory loggerFactory) - { - _jT808AtomicCounterService = jT808AtomicCounterServiceFactory.Create(JT808TransportProtocolType.udp); - _logger =loggerFactory.CreateLogger(); - } - - public override string ServiceName => nameof(JT808UdpAtomicCouterResetDailyJob); - - protected override async Task ExecuteAsync(CancellationToken stoppingToken) - { - _logger.LogInformation($"{ServiceName} is starting."); - stoppingToken.Register(() => _logger.LogInformation($"{ServiceName} background task is stopping.")); - while (!stoppingToken.IsCancellationRequested) - { - _logger.LogInformation($"{ServiceName} task doing background work."); - _jT808AtomicCounterService.Reset(); - await Task.Delay(DelayTimeSpan, stoppingToken); - } - _logger.LogInformation($"{ServiceName} background task is stopping."); - } - } -} diff --git a/src/JT808.DotNetty.Core/Jobs/JT808UdpTrafficResetDailyJob.cs b/src/JT808.DotNetty.Core/Jobs/JT808UdpTrafficResetDailyJob.cs deleted file mode 100644 index 620a80f..0000000 --- a/src/JT808.DotNetty.Core/Jobs/JT808UdpTrafficResetDailyJob.cs +++ /dev/null @@ -1,38 +0,0 @@ -using JT808.DotNetty.Abstractions.Enums; -using JT808.DotNetty.Core.Services; -using Microsoft.Extensions.Logging; -using System.Threading; -using System.Threading.Tasks; - -namespace JT808.DotNetty.Core.Jobs -{ - internal class JT808UdpTrafficResetDailyJob : JT808BackgroundService - { - private readonly ILogger _logger; - - private readonly JT808TrafficService _jT808TrafficService; - - public JT808UdpTrafficResetDailyJob( - JT808TrafficServiceFactory jT808TrafficServiceFactory, - ILoggerFactory loggerFactory) - { - _jT808TrafficService = jT808TrafficServiceFactory.Create(JT808TransportProtocolType.udp); - _logger =loggerFactory.CreateLogger(); - } - - public override string ServiceName => nameof(JT808UdpTrafficResetDailyJob); - - protected override async Task ExecuteAsync(CancellationToken stoppingToken) - { - _logger.LogInformation($"{ServiceName} is starting."); - stoppingToken.Register(() => _logger.LogInformation($"{ServiceName} background task is stopping.")); - while (!stoppingToken.IsCancellationRequested) - { - _logger.LogInformation($"{ServiceName} task doing background work."); - _jT808TrafficService.ResetSize(); - await Task.Delay(DelayTimeSpan, stoppingToken); - } - _logger.LogInformation($"{ServiceName} background task is stopping."); - } - } -} diff --git a/src/JT808.DotNetty.Core/Metadata/JT808TcpSession.cs b/src/JT808.DotNetty.Core/Metadata/JT808TcpSession.cs index 6d0e651..27c4338 100644 --- a/src/JT808.DotNetty.Core/Metadata/JT808TcpSession.cs +++ b/src/JT808.DotNetty.Core/Metadata/JT808TcpSession.cs @@ -1,9 +1,11 @@ using DotNetty.Transport.Channels; +using JT808.DotNetty.Abstractions.Enums; +using JT808.DotNetty.Core.Interfaces; using System; namespace JT808.DotNetty.Core.Metadata { - public class JT808TcpSession + public class JT808TcpSession: IJT808Session { public JT808TcpSession(IChannel channel, string terminalPhoneNo) { @@ -25,5 +27,6 @@ namespace JT808.DotNetty.Core.Metadata public DateTime LastActiveTime { get; set; } public DateTime StartTime { get; set; } + public JT808TransportProtocolType TransportProtocolType { get; set; } = JT808TransportProtocolType.tcp; } } diff --git a/src/JT808.DotNetty.Core/Metadata/JT808UdpSession.cs b/src/JT808.DotNetty.Core/Metadata/JT808UdpSession.cs index 7984202..909ac4c 100644 --- a/src/JT808.DotNetty.Core/Metadata/JT808UdpSession.cs +++ b/src/JT808.DotNetty.Core/Metadata/JT808UdpSession.cs @@ -1,10 +1,12 @@ using DotNetty.Transport.Channels; +using JT808.DotNetty.Abstractions.Enums; +using JT808.DotNetty.Core.Interfaces; using System; using System.Net; namespace JT808.DotNetty.Core.Metadata { - public class JT808UdpSession + public class JT808UdpSession: IJT808Session { public JT808UdpSession(IChannel channel, EndPoint sender, @@ -31,5 +33,6 @@ namespace JT808.DotNetty.Core.Metadata public DateTime LastActiveTime { get; set; } public DateTime StartTime { get; set; } + public JT808TransportProtocolType TransportProtocolType { get; set; } = JT808TransportProtocolType.udp; } } diff --git a/src/JT808.DotNetty.Core/Services/JT808SimpleSystemCollectService.cs b/src/JT808.DotNetty.Core/Services/JT808SimpleSystemCollectService.cs deleted file mode 100644 index 2482cff..0000000 --- a/src/JT808.DotNetty.Core/Services/JT808SimpleSystemCollectService.cs +++ /dev/null @@ -1,30 +0,0 @@ -using JT808.DotNetty.Abstractions.Dtos; -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.Text; - -namespace JT808.DotNetty.Core.Services -{ - /// - /// 简单系统收集服务 - /// - public class JT808SimpleSystemCollectService - { - /// - /// 获取系统当前进程使用情况 - /// - /// - public JT808SystemCollectInfoDto Get() - { - JT808SystemCollectInfoDto jT808SystemCollectInfoDto = new JT808SystemCollectInfoDto(); - var proc = Process.GetCurrentProcess(); - jT808SystemCollectInfoDto.ProcessId = proc.Id; - jT808SystemCollectInfoDto.WorkingSet64 = proc.WorkingSet64 / 1024.0 / 1024.0; - jT808SystemCollectInfoDto.PeakWorkingSet64 = proc.PeakWorkingSet64 / 1024.0 / 1024.0; - jT808SystemCollectInfoDto.PrivateMemorySize64 = proc.PrivateMemorySize64 / 1024.0 / 1024.0; - jT808SystemCollectInfoDto.CPUTotalProcessorTime = proc.TotalProcessorTime; - return jT808SystemCollectInfoDto; - } - } -} diff --git a/src/JT808.DotNetty.Core/Services/JT808TrafficService.cs b/src/JT808.DotNetty.Core/Services/JT808TrafficService.cs deleted file mode 100644 index 6740ff8..0000000 --- a/src/JT808.DotNetty.Core/Services/JT808TrafficService.cs +++ /dev/null @@ -1,46 +0,0 @@ -using JT808.DotNetty.Core.Metadata; -using System; -using System.Collections.Generic; -using System.Text; - -namespace JT808.DotNetty.Core.Services -{ - public class JT808TrafficService - { - public JT808TrafficService() - { - receiveCounter = new JT808AtomicCounter(); - sendCounter = new JT808AtomicCounter(); - } - - private readonly JT808AtomicCounter receiveCounter; - - private readonly JT808AtomicCounter sendCounter; - - public void ReceiveSize(long size) - { - receiveCounter.Add(size); - } - - public void SendSize(long size) - { - sendCounter.Add(size); - } - - public long TotalReceiveSize - { - get { return receiveCounter.Count; } - } - - public long TotalSendSize - { - get { return sendCounter.Count; } - } - - public void ResetSize() - { - receiveCounter.Reset(); - sendCounter.Reset(); - } - } -} diff --git a/src/JT808.DotNetty.Core/Services/JT808TrafficServiceFactory.cs b/src/JT808.DotNetty.Core/Services/JT808TrafficServiceFactory.cs deleted file mode 100644 index 1e3bc3d..0000000 --- a/src/JT808.DotNetty.Core/Services/JT808TrafficServiceFactory.cs +++ /dev/null @@ -1,33 +0,0 @@ -using JT808.DotNetty.Abstractions.Enums; -using JT808.DotNetty.Core.Metadata; -using System; -using System.Collections.Concurrent; -using System.Collections.Generic; -using System.Text; - -namespace JT808.DotNetty.Core.Services -{ - public class JT808TrafficServiceFactory - { - private readonly ConcurrentDictionary cache; - - public JT808TrafficServiceFactory() - { - cache = new ConcurrentDictionary(); - } - - public JT808TrafficService Create(JT808TransportProtocolType type) - { - if (cache.TryGetValue(type, out var service)) - { - return service; - } - else - { - var serviceNew = new JT808TrafficService(); - cache.TryAdd(type, serviceNew); - return serviceNew; - } - } - } -} diff --git a/src/JT808.DotNetty.Core/Services/JT808TransmitAddressFilterService.cs b/src/JT808.DotNetty.Core/Services/JT808TransmitAddressFilterService.cs deleted file mode 100644 index 7fd1078..0000000 --- a/src/JT808.DotNetty.Core/Services/JT808TransmitAddressFilterService.cs +++ /dev/null @@ -1,102 +0,0 @@ -using JT808.DotNetty.Abstractions.Dtos; -using Microsoft.Extensions.Options; -using System; -using System.Collections.Concurrent; -using System.Collections.Generic; -using System.Linq; -using System.Net; -using JT808.DotNetty.Core.Configurations; - -namespace JT808.DotNetty.Core.Services -{ - /// - /// JT808转发地址过滤服务 - /// 按照808的消息,有些请求必须要应答,但是转发可以不需要有应答可以节省部分资源包括: - // 1.消息的序列化 - // 2.消息的下发 - // 都有一定的性能损耗,那么不需要判断写超时 IdleState.WriterIdle - // 就跟神兽貔貅一样。。。 - /// - public class JT808TransmitAddressFilterService : IDisposable - { - private readonly IOptionsMonitor jT808ConfigurationOptionsMonitor; - - private ConcurrentDictionary ForwardingRemoteAddresssDict; - - private IDisposable jT808ConfigurationOptionsMonitorDisposable; - - public JT808TransmitAddressFilterService( - IOptionsMonitor jT808ConfigurationOptionsMonitor) - { - this.jT808ConfigurationOptionsMonitor = jT808ConfigurationOptionsMonitor; - ForwardingRemoteAddresssDict = new ConcurrentDictionary(); - InitForwardingRemoteAddress(jT808ConfigurationOptionsMonitor.CurrentValue.ForwardingRemoteIPAddress); - //OnChange 源码多播委托 - jT808ConfigurationOptionsMonitorDisposable = this.jT808ConfigurationOptionsMonitor.OnChange(options => - { - ChangeForwardingRemoteAddress(options.ForwardingRemoteIPAddress); - }); - } - - private void InitForwardingRemoteAddress(List jT808ClientConfigurations) - { - if (jT808ClientConfigurations != null && jT808ClientConfigurations.Count > 0) - { - foreach (var item in jT808ClientConfigurations) - { - ForwardingRemoteAddresssDict.TryAdd(item, 0); - } - } - } - - private void ChangeForwardingRemoteAddress(List jT808ClientConfigurations) - { - if (jT808ClientConfigurations != null && jT808ClientConfigurations.Count > 0) - { - ForwardingRemoteAddresssDict.Clear(); - foreach (var item in jT808ClientConfigurations) - { - ForwardingRemoteAddresssDict.TryAdd(item, 0); - } - } - else - { - ForwardingRemoteAddresssDict.Clear(); - } - } - - public bool ContainsKey(EndPoint endPoint) - { - IPAddress ip = ((IPEndPoint)endPoint).Address; - return ForwardingRemoteAddresssDict.ContainsKey(ip.ToString()); - } - - public JT808ResultDto Add(string host) - { - return new JT808ResultDto() { Code = JT808ResultCode.Ok, Data = ForwardingRemoteAddresssDict.TryAdd(host,0) }; - } - - public JT808ResultDto Remove(string host) - { - if(jT808ConfigurationOptionsMonitor.CurrentValue.ForwardingRemoteIPAddress!=null && - jT808ConfigurationOptionsMonitor.CurrentValue.ForwardingRemoteIPAddress.Any(w=>w== host)) - { - return new JT808ResultDto() { Code = JT808ResultCode.Ok, Data = false,Message="不能删除服务器配置的地址" }; - } - else - { - return new JT808ResultDto() { Code = JT808ResultCode.Ok, Data = ForwardingRemoteAddresssDict.TryRemove(host,out var temp) }; - } - } - - public JT808ResultDto> GetAll() - { - return new JT808ResultDto>(){ Code = JT808ResultCode.Ok, Data = ForwardingRemoteAddresssDict.Select(s=>s.Key).ToList() }; - } - - public void Dispose() - { - jT808ConfigurationOptionsMonitorDisposable.Dispose(); - } - } -} diff --git a/src/JT808.DotNetty.Tcp/Handlers/JT808MsgIdDefaultTcpHandler.cs b/src/JT808.DotNetty.Tcp/Handlers/JT808MsgIdDefaultTcpHandler.cs deleted file mode 100644 index fcebc15..0000000 --- a/src/JT808.DotNetty.Tcp/Handlers/JT808MsgIdDefaultTcpHandler.cs +++ /dev/null @@ -1,18 +0,0 @@ -using JT808.DotNetty.Core; -using JT808.DotNetty.Core.Handlers; -using System; -using System.Collections.Generic; -using System.Text; - -namespace JT808.DotNetty.Tcp.Handlers -{ - /// - /// 默认消息处理业务实现 - /// - internal class JT808MsgIdDefaultTcpHandler : JT808MsgIdTcpHandlerBase - { - public JT808MsgIdDefaultTcpHandler(JT808TcpSessionManager sessionManager) : base(sessionManager) - { - } - } -} diff --git a/src/JT808.DotNetty.Tcp/Handlers/JT808TcpServerHandler.cs b/src/JT808.DotNetty.Tcp/Handlers/JT808TcpServerHandler.cs index ed23021..a374868 100644 --- a/src/JT808.DotNetty.Tcp/Handlers/JT808TcpServerHandler.cs +++ b/src/JT808.DotNetty.Tcp/Handlers/JT808TcpServerHandler.cs @@ -3,14 +3,11 @@ using DotNetty.Transport.Channels; using JT808.Protocol; using System; using JT808.DotNetty.Core; -using JT808.DotNetty.Abstractions; using Microsoft.Extensions.Logging; -using JT808.DotNetty.Core.Handlers; using JT808.DotNetty.Core.Services; -using JT808.DotNetty.Core.Metadata; -using JT808.DotNetty.Core.Interfaces; using JT808.DotNetty.Abstractions.Enums; using JT808.Protocol.Interfaces; +using JT808.Protocol.Exceptions; namespace JT808.DotNetty.Tcp.Handlers { @@ -18,111 +15,48 @@ namespace JT808.DotNetty.Tcp.Handlers /// JT808服务端处理程序 /// internal class JT808TcpServerHandler : SimpleChannelInboundHandler - { - private readonly JT808MsgIdTcpHandlerBase handler; - + { private readonly JT808TcpSessionManager jT808SessionManager; - private readonly JT808TransmitAddressFilterService jT808TransmitAddressFilterService; - - private readonly IJT808SourcePackageDispatcher jT808SourcePackageDispatcher; - private readonly JT808AtomicCounterService jT808AtomicCounterService; - private readonly JT808TrafficService jT808TrafficService; - - private readonly IJT808UplinkPacket jT808UplinkPacket; - - private readonly IJT808TcpCustomMsgIdHandler jT808TcpCustomMsgIdHandler; - private readonly ILogger logger; - private readonly ILogger unknownLogger; - private readonly JT808Serializer JT808Serializer; public JT808TcpServerHandler( IJT808Config jT808Config, - JT808TrafficServiceFactory jT808TrafficServiceFactory, ILoggerFactory loggerFactory, - JT808TransmitAddressFilterService jT808TransmitAddressFilterService, - IJT808SourcePackageDispatcher jT808SourcePackageDispatcher, - IJT808UplinkPacket jT808UplinkPacket, - JT808MsgIdTcpHandlerBase handler, JT808AtomicCounterServiceFactory jT808AtomicCounterServiceFactory, - IJT808TcpCustomMsgIdHandler jT808TcpCustomMsgIdHandler, JT808TcpSessionManager jT808SessionManager) { - this.jT808TcpCustomMsgIdHandler = jT808TcpCustomMsgIdHandler; - this.jT808TrafficService = jT808TrafficServiceFactory.Create(JT808TransportProtocolType.tcp); - this.jT808TransmitAddressFilterService = jT808TransmitAddressFilterService; - this.handler = handler; this.jT808SessionManager = jT808SessionManager; - this.jT808SourcePackageDispatcher = jT808SourcePackageDispatcher; - this.jT808UplinkPacket = jT808UplinkPacket; this.jT808AtomicCounterService = jT808AtomicCounterServiceFactory.Create(JT808TransportProtocolType.tcp); this.JT808Serializer = jT808Config.GetSerializer(); logger = loggerFactory.CreateLogger(); - unknownLogger = loggerFactory.CreateLogger("tcp_unknown_msgid"); } - protected override void ChannelRead0(IChannelHandlerContext ctx, byte[] msg) { try { - jT808SourcePackageDispatcher.SendAsync(msg); - jT808UplinkPacket.ProcessorAsync(msg, JT808TransportProtocolType.tcp); //解析到头部,然后根据具体的消息Id通过队列去进行消费 //要是一定要解析到数据体可以在JT808MsgIdHandlerBase类中根据具体的消息, //解析具体的消息体,具体调用JT808Serializer.Deserialize JT808HeaderPackage jT808HeaderPackage = JT808Serializer.Deserialize(msg); jT808AtomicCounterService.MsgSuccessIncrement(); - jT808TrafficService.ReceiveSize(msg.Length); if (logger.IsEnabled(LogLevel.Trace)) { - logger.LogTrace("accept package success count<<<" + jT808AtomicCounterService.MsgSuccessCount.ToString()); - logger.LogTrace("accept msg <<< " + ByteBufferUtil.HexDump(msg)); + logger.LogTrace($"accept package success count=>{jT808AtomicCounterService.MsgSuccessCount.ToString()},accept msg=>{ByteBufferUtil.HexDump(msg)}"); } jT808SessionManager.TryAdd(jT808HeaderPackage.Header.TerminalPhoneNo,ctx.Channel); - if (handler.HandlerDict.TryGetValue(jT808HeaderPackage.Header.MsgId, out var handlerFunc)) - { - IJT808Reply jT808Response = handlerFunc(new JT808Request(jT808HeaderPackage, msg)); - if (jT808Response != null) - { - if (!jT808TransmitAddressFilterService.ContainsKey(ctx.Channel.RemoteAddress)) - { - ctx.WriteAndFlushAsync(jT808Response); - } - } - } - else - { - IJT808Reply jT808CustomMsgIdResponse = jT808TcpCustomMsgIdHandler.Proccesser(new JT808Request(jT808HeaderPackage, msg)); - if (jT808CustomMsgIdResponse != null) - { - if (!jT808TransmitAddressFilterService.ContainsKey(ctx.Channel.RemoteAddress)) - { - ctx.WriteAndFlushAsync(jT808CustomMsgIdResponse); - } - } - else - { - //未知的消息类型已日志形式输出 - if (unknownLogger.IsEnabled(LogLevel.Debug)) - { - unknownLogger.LogDebug(ByteBufferUtil.HexDump(msg)); - } - } - } } - catch (JT808.Protocol.Exceptions.JT808Exception ex) + catch (JT808Exception ex) { jT808AtomicCounterService.MsgFailIncrement(); if (logger.IsEnabled(LogLevel.Error)) { - logger.LogError("accept package fail count<<<" + jT808AtomicCounterService.MsgFailCount.ToString()); - logger.LogError(ex, "accept msg<<<" + ByteBufferUtil.HexDump(msg)); + logger.LogError(ex,$"accept package fail count=>{jT808AtomicCounterService.MsgFailCount.ToString()},accept msg=>{ByteBufferUtil.HexDump(msg)}"); } } catch (Exception ex) @@ -130,8 +64,7 @@ namespace JT808.DotNetty.Tcp.Handlers jT808AtomicCounterService.MsgFailIncrement(); if (logger.IsEnabled(LogLevel.Error)) { - logger.LogError("accept package fail count<<<" + jT808AtomicCounterService.MsgFailCount.ToString()); - logger.LogError(ex, "accept msg<<<" + ByteBufferUtil.HexDump(msg)); + logger.LogError(ex, $"accept package fail count=>{jT808AtomicCounterService.MsgFailCount.ToString()},accept msg=>{ByteBufferUtil.HexDump(msg)}"); } } } diff --git a/src/JT808.DotNetty.Tcp/JT808TcpBuilderDefault.cs b/src/JT808.DotNetty.Tcp/JT808TcpBuilderDefault.cs index 369071d..7b247a1 100644 --- a/src/JT808.DotNetty.Tcp/JT808TcpBuilderDefault.cs +++ b/src/JT808.DotNetty.Tcp/JT808TcpBuilderDefault.cs @@ -22,17 +22,6 @@ namespace JT808.DotNetty.Tcp return Instance; } - public IJT808TcpNettyBuilder ReplaceCustomMsgIdHandler() where T : IJT808TcpCustomMsgIdHandler - { - Instance.JT808Builder.Services.Replace(new ServiceDescriptor(typeof(IJT808TcpCustomMsgIdHandler), typeof(T), ServiceLifetime.Singleton)); - return this; - } - - public IJT808TcpNettyBuilder ReplaceMsgIdHandler() where T : JT808MsgIdTcpHandlerBase - { - Instance.JT808Builder.Services.Replace(new ServiceDescriptor(typeof(JT808MsgIdTcpHandlerBase), typeof(T), ServiceLifetime.Singleton)); - return this; - } public IJT808TcpNettyBuilder ReplaceSessionService() where T : IJT808TcpSessionService { diff --git a/src/JT808.DotNetty.Tcp/JT808TcpDotnettyExtensions.cs b/src/JT808.DotNetty.Tcp/JT808TcpDotnettyExtensions.cs index 43ffb3f..0e8250a 100644 --- a/src/JT808.DotNetty.Tcp/JT808TcpDotnettyExtensions.cs +++ b/src/JT808.DotNetty.Tcp/JT808TcpDotnettyExtensions.cs @@ -10,7 +10,6 @@ using Newtonsoft.Json; using System; using System.Reflection; using System.Runtime.CompilerServices; -using JT808.DotNetty.Core.Jobs; using JT808.DotNetty.Core.Interfaces; using JT808.DotNetty.Internal; @@ -22,18 +21,13 @@ namespace JT808.DotNetty.Tcp { public static IJT808TcpNettyBuilder AddJT808TcpNettyHost(this IJT808NettyBuilder jT808NettyBuilder) { - jT808NettyBuilder.JT808Builder.Services.TryAddSingleton(); jT808NettyBuilder.JT808Builder.Services.TryAddSingleton(); jT808NettyBuilder.JT808Builder.Services.TryAddSingleton(); jT808NettyBuilder.JT808Builder.Services.TryAddSingleton(); - jT808NettyBuilder.JT808Builder.Services.TryAddSingleton(); - jT808NettyBuilder.JT808Builder.Services.TryAddSingleton(); jT808NettyBuilder.JT808Builder.Services.TryAddScoped(); jT808NettyBuilder.JT808Builder.Services.TryAddScoped(); jT808NettyBuilder.JT808Builder.Services.TryAddScoped(); jT808NettyBuilder.JT808Builder.Services.TryAddScoped(); - jT808NettyBuilder.JT808Builder.Services.AddHostedService(); - jT808NettyBuilder.JT808Builder.Services.AddHostedService(); jT808NettyBuilder.JT808Builder.Services.AddHostedService(); return new JT808TcpBuilderDefault(jT808NettyBuilder); } diff --git a/src/JT808.DotNetty.Tests/JT808.DotNetty.Core.Test/JT808TransmitAddressFilterServiceTest.cs b/src/JT808.DotNetty.Tests/JT808.DotNetty.Core.Test/JT808TransmitAddressFilterServiceTest.cs deleted file mode 100644 index 0cf5c65..0000000 --- a/src/JT808.DotNetty.Tests/JT808.DotNetty.Core.Test/JT808TransmitAddressFilterServiceTest.cs +++ /dev/null @@ -1,75 +0,0 @@ -using JT808.DotNetty.Abstractions.Dtos; -using JT808.DotNetty.Core.Configurations; -using JT808.DotNetty.Core.Services; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Hosting; -using Microsoft.Extensions.Logging; -using Microsoft.VisualStudio.TestTools.UnitTesting; -using System; -using System.Collections.Generic; - -namespace JT808.DotNetty.Core.Test -{ - [TestClass] - public class JT808TransmitAddressFilterServiceTest - { - private JT808TransmitAddressFilterService jT808TransmitAddressFilterService; - - public JT808TransmitAddressFilterServiceTest() - { - var serverHostBuilder = new HostBuilder() - .ConfigureAppConfiguration((hostingContext, config) => - { - config.SetBasePath(AppDomain.CurrentDomain.BaseDirectory); - config.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true); - }) - .ConfigureServices((hostContext, services) => - { - services.AddSingleton(); - services.AddSingleton(typeof(ILogger<>), typeof(Logger<>)); - services.Configure(hostContext.Configuration.GetSection("JT808Configuration")); - services.AddSingleton(); - }); - var serviceProvider = serverHostBuilder.Build().Services; - jT808TransmitAddressFilterService = serviceProvider.GetService(); - jT808TransmitAddressFilterService.Add("127.0.0.1"); - } - - [TestMethod] - public void Test1() - { - Assert.IsTrue(jT808TransmitAddressFilterService.ContainsKey(new JT808IPAddressDto - { - Host = "127.0.0.1", - Port = 12348 - }.EndPoint)); - } - - [TestMethod] - public void Test2() - { - var result = jT808TransmitAddressFilterService.GetAll(); - } - - [TestMethod] - public void Test3() - { - var result1= jT808TransmitAddressFilterService.Add("127.0.0.1"); - Assert.AreEqual(JT808ResultCode.Ok, result1.Code); - Assert.IsTrue(result1.Data); - var result2 = jT808TransmitAddressFilterService.Remove("127.0.0.1"); - Assert.AreEqual(JT808ResultCode.Ok, result2.Code); - Assert.IsTrue(result2.Data); - } - - [TestMethod] - public void Test4() - { - var result2 = jT808TransmitAddressFilterService.Remove("127.0.0.1"); - Assert.AreEqual(JT808ResultCode.Ok, result2.Code); - Assert.IsFalse(result2.Data); - Assert.AreEqual("不能删除服务器配置的地址", result2.Message); - } - } -} diff --git a/src/JT808.DotNetty.Tests/JT808.DotNetty.Hosting/Program.cs b/src/JT808.DotNetty.Tests/JT808.DotNetty.Hosting/Program.cs index 30c39f5..b786a06 100644 --- a/src/JT808.DotNetty.Tests/JT808.DotNetty.Hosting/Program.cs +++ b/src/JT808.DotNetty.Tests/JT808.DotNetty.Hosting/Program.cs @@ -54,19 +54,9 @@ namespace JT808.DotNetty.Hosting services.AddSingleton(typeof(ILogger<>), typeof(Logger<>)); services.AddJT808Configure() .AddJT808NettyCore(hostContext.Configuration) - //自定义日志下发包 - .ReplaceDownlinkPacket() - //自定义会话通知(在线/离线)使用异步方式 - //.ReplaceSessionPublishing() - //自定义原包转发 使用异步方式 - //.ReplaceSourcePackageDispatcher .AddJT808TcpNettyHost() - // 自定义Tcp消息处理业务 - .ReplaceMsgIdHandler() .Builder() .AddJT808UdpNettyHost() - // 自定义Udp消息处理业务 - .ReplaceMsgIdHandler() .Builder() .AddJT808WebApiNettyHost() .Builder(); diff --git a/src/JT808.DotNetty.Tests/JT808.DotNetty.WebApi.Test/JT808DotNettyWebApiTest.cs b/src/JT808.DotNetty.Tests/JT808.DotNetty.WebApi.Test/JT808DotNettyWebApiTest.cs index bbb9014..3ef93bd 100644 --- a/src/JT808.DotNetty.Tests/JT808.DotNetty.WebApi.Test/JT808DotNettyWebApiTest.cs +++ b/src/JT808.DotNetty.Tests/JT808.DotNetty.WebApi.Test/JT808DotNettyWebApiTest.cs @@ -22,24 +22,12 @@ namespace JT808.DotNetty.WebApi.Test var api = HttpApi.Resolve(); } - [TestMethod] - public void GetSystemCollectTest() - { - var result = jT808DotNettyWebApi.GetSystemCollect().GetAwaiter().GetResult(); - } - [TestMethod] public void GetUdpAtomicCounterTest() { var result = jT808DotNettyWebApi.GetUdpAtomicCounter().GetAwaiter().GetResult(); } - [TestMethod] - public void GetUdpTrafficTest() - { - var result = jT808DotNettyWebApi.GetUdpTraffic().GetAwaiter().GetResult(); - } - [TestMethod] public void UnificationUdpSendTest() { @@ -61,44 +49,12 @@ namespace JT808.DotNetty.WebApi.Test var result = jT808DotNettyWebApi.GetUdpSessionAll().GetAwaiter().GetResult(); } - [TestMethod] - public void GetTcpTrafficTest() - { - var result = jT808DotNettyWebApi.GetTcpTraffic().GetAwaiter().GetResult(); - } - [TestMethod] public void GetTcpAtomicCounterTest() { var result = jT808DotNettyWebApi.GetTcpAtomicCounter().GetAwaiter().GetResult(); } - [TestMethod] - public void GetTransmitAllTest() - { - var result = jT808DotNettyWebApi.GetTransmitAll().GetAwaiter().GetResult(); - } - - [TestMethod] - public void RemoveTransmitAddressTest() - { - var result = jT808DotNettyWebApi.RemoveTransmitAddress(new Abstractions.Dtos.JT808IPAddressDto - { - Host = "127.0.0.1", - Port = 6561 - }).GetAwaiter().GetResult(); - } - - [TestMethod] - public void AddTransmitAddressTest() - { - var result = jT808DotNettyWebApi.AddTransmitAddress(new Abstractions.Dtos.JT808IPAddressDto - { - Host = "127.0.0.1", - Port = 6553 - }).GetAwaiter().GetResult(); - } - [TestMethod] public void UnificationTcpSendTest() { diff --git a/src/JT808.DotNetty.Udp/Handlers/JT808MsgIdDefaultUdpHandler.cs b/src/JT808.DotNetty.Udp/Handlers/JT808MsgIdDefaultUdpHandler.cs deleted file mode 100644 index 0092851..0000000 --- a/src/JT808.DotNetty.Udp/Handlers/JT808MsgIdDefaultUdpHandler.cs +++ /dev/null @@ -1,15 +0,0 @@ -using JT808.DotNetty.Core; -using JT808.DotNetty.Core.Handlers; - -namespace JT808.DotNetty.Udp.Handlers -{ - /// - /// 默认消息处理业务实现 - /// - internal class JT808MsgIdDefaultUdpHandler : JT808MsgIdUdpHandlerBase - { - public JT808MsgIdDefaultUdpHandler(JT808UdpSessionManager sessionManager) : base(sessionManager) - { - } - } -} diff --git a/src/JT808.DotNetty.Udp/Handlers/JT808UdpServerHandler.cs b/src/JT808.DotNetty.Udp/Handlers/JT808UdpServerHandler.cs index 41bb207..950c07d 100644 --- a/src/JT808.DotNetty.Udp/Handlers/JT808UdpServerHandler.cs +++ b/src/JT808.DotNetty.Udp/Handlers/JT808UdpServerHandler.cs @@ -3,14 +3,9 @@ using DotNetty.Transport.Channels; using JT808.Protocol; using System; using Microsoft.Extensions.Logging; -using DotNetty.Transport.Channels.Sockets; using JT808.DotNetty.Core.Metadata; -using JT808.DotNetty.Abstractions; using JT808.DotNetty.Core.Services; using JT808.DotNetty.Core; -using JT808.DotNetty.Core.Handlers; -using System.Threading.Tasks; -using JT808.DotNetty.Core.Interfaces; using JT808.DotNetty.Abstractions.Enums; using JT808.Protocol.Interfaces; @@ -21,96 +16,39 @@ namespace JT808.DotNetty.Udp.Handlers /// internal class JT808UdpServerHandler : SimpleChannelInboundHandler { - private readonly IJT808SourcePackageDispatcher jT808SourcePackageDispatcher; - private readonly JT808AtomicCounterService jT808AtomicCounterService; private readonly ILogger logger; private readonly JT808UdpSessionManager jT808UdpSessionManager; - private readonly JT808MsgIdUdpHandlerBase handler; - - private readonly JT808TrafficService jT808TrafficService; - - private readonly IJT808UplinkPacket jT808UplinkPacket; - - private readonly IJT808UdpCustomMsgIdHandler jT808UdpCustomMsgIdHandler; - - private readonly IJT808DatagramPacket jT808DatagramPacket; - - private readonly ILogger unknownLogger; - private readonly JT808Serializer JT808Serializer; public JT808UdpServerHandler( IJT808Config jT808Config, - IJT808DatagramPacket jT808DatagramPacket, - JT808TrafficServiceFactory jT808TrafficServiceFactory, ILoggerFactory loggerFactory, - IJT808SourcePackageDispatcher jT808SourcePackageDispatcher, - IJT808UplinkPacket jT808UplinkPacket, - JT808MsgIdUdpHandlerBase handler, JT808AtomicCounterServiceFactory jT808AtomicCounterServiceFactory, - IJT808UdpCustomMsgIdHandler jT808UdpCustomMsgIdHandler, JT808UdpSessionManager jT808UdpSessionManager) { - this.jT808UdpCustomMsgIdHandler = jT808UdpCustomMsgIdHandler; - this.jT808DatagramPacket = jT808DatagramPacket; - this.jT808TrafficService = jT808TrafficServiceFactory.Create(JT808TransportProtocolType.udp); - this.handler = handler; - this.jT808SourcePackageDispatcher = jT808SourcePackageDispatcher; this.jT808AtomicCounterService = jT808AtomicCounterServiceFactory.Create(JT808TransportProtocolType.udp); - this.jT808UplinkPacket = jT808UplinkPacket; this.jT808UdpSessionManager = jT808UdpSessionManager; logger = loggerFactory.CreateLogger(); JT808Serializer = jT808Config.GetSerializer(); - unknownLogger = loggerFactory.CreateLogger("udp_unknown_msgid"); } protected override void ChannelRead0(IChannelHandlerContext ctx, JT808UdpPackage msg) { try { - jT808SourcePackageDispatcher.SendAsync(msg.Buffer); - jT808UplinkPacket.ProcessorAsync(msg.Buffer, JT808TransportProtocolType.udp); //解析到头部,然后根据具体的消息Id通过队列去进行消费 //要是一定要解析到数据体可以在JT808MsgIdHandlerBase类中根据具体的消息, //解析具体的消息体,具体调用JT808Serializer.Deserialize JT808HeaderPackage jT808HeaderPackage = JT808Serializer.Deserialize(msg.Buffer); jT808AtomicCounterService.MsgSuccessIncrement(); - jT808TrafficService.ReceiveSize(msg.Buffer.Length); jT808UdpSessionManager.TryAdd(ctx.Channel, msg.Sender, jT808HeaderPackage.Header.TerminalPhoneNo); if (logger.IsEnabled(LogLevel.Trace)) { - logger.LogTrace("accept package success count<<<" + jT808AtomicCounterService.MsgSuccessCount.ToString()); - logger.LogTrace("accept msg <<< " + ByteBufferUtil.HexDump(msg.Buffer)); - } - if (handler.HandlerDict.TryGetValue(jT808HeaderPackage.Header.MsgId, out var handlerFunc)) - { - IJT808Reply jT808Response = handlerFunc(new JT808Request(jT808HeaderPackage, msg.Buffer)); - if (jT808Response != null) - { - var sendData = JT808Serializer.Serialize(jT808Response.Package, jT808Response.MinBufferSize); - ctx.WriteAndFlushAsync(jT808DatagramPacket.Create(sendData,msg.Sender)); - } - } - else - { - IJT808Reply jT808CustomMsgIdResponse = jT808UdpCustomMsgIdHandler.Proccesser(new JT808Request(jT808HeaderPackage, msg.Buffer)); - if (jT808CustomMsgIdResponse != null) - { - var sendData = JT808Serializer.Serialize(jT808CustomMsgIdResponse.Package, jT808CustomMsgIdResponse.MinBufferSize); - ctx.WriteAndFlushAsync(jT808DatagramPacket.Create(sendData, msg.Sender)); - } - else - { - //未知的消息类型已日志形式输出 - if (unknownLogger.IsEnabled(LogLevel.Debug)) - { - unknownLogger.LogDebug(ByteBufferUtil.HexDump(msg.Buffer)); - } - } + logger.LogTrace($"accept package success count=>{jT808AtomicCounterService.MsgFailCount.ToString()},accept msg=>{ByteBufferUtil.HexDump(msg.Buffer)}"); } } catch (JT808.Protocol.Exceptions.JT808Exception ex) @@ -118,8 +56,7 @@ namespace JT808.DotNetty.Udp.Handlers jT808AtomicCounterService.MsgFailIncrement(); if (logger.IsEnabled(LogLevel.Error)) { - logger.LogError("accept package fail count<<<" + jT808AtomicCounterService.MsgFailCount.ToString()); - logger.LogError(ex, "accept msg<<<" + ByteBufferUtil.HexDump(msg.Buffer)); + logger.LogError(ex, $"accept package fail count=>{jT808AtomicCounterService.MsgFailCount.ToString()},accept msg=>{ByteBufferUtil.HexDump(msg.Buffer)}"); } } catch (Exception ex) @@ -127,13 +64,11 @@ namespace JT808.DotNetty.Udp.Handlers jT808AtomicCounterService.MsgFailIncrement(); if (logger.IsEnabled(LogLevel.Error)) { - logger.LogError("accept package fail count<<<" + jT808AtomicCounterService.MsgFailCount.ToString()); - logger.LogError(ex, "accept msg<<<" + ByteBufferUtil.HexDump(msg.Buffer)); + logger.LogError(ex, $"accept package fail count=>{jT808AtomicCounterService.MsgFailCount.ToString()},accept msg=>{ByteBufferUtil.HexDump(msg.Buffer)}"); } } } public override void ChannelReadComplete(IChannelHandlerContext context) => context.Flush(); - } } diff --git a/src/JT808.DotNetty.Udp/JT1078UdpBuilderDefault.cs b/src/JT808.DotNetty.Udp/JT1078UdpBuilderDefault.cs index 1fcd18f..f894297 100644 --- a/src/JT808.DotNetty.Udp/JT1078UdpBuilderDefault.cs +++ b/src/JT808.DotNetty.Udp/JT1078UdpBuilderDefault.cs @@ -1,10 +1,6 @@ -using JT808.DotNetty.Core.Handlers; -using JT808.DotNetty.Core.Interfaces; +using JT808.DotNetty.Core.Interfaces; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; -using System; -using System.Collections.Generic; -using System.Text; namespace JT808.DotNetty.Udp { @@ -22,18 +18,6 @@ namespace JT808.DotNetty.Udp return Instance; } - public IJT808UdpNettyBuilder ReplaceCustomMsgIdHandler() where T : IJT808UdpCustomMsgIdHandler - { - Instance.JT808Builder.Services.Replace(new ServiceDescriptor(typeof(IJT808UdpCustomMsgIdHandler), typeof(T), ServiceLifetime.Singleton)); - return this; - } - - public IJT808UdpNettyBuilder ReplaceMsgIdHandler() where T : JT808MsgIdUdpHandlerBase - { - Instance.JT808Builder.Services.Replace(new ServiceDescriptor(typeof(JT808MsgIdUdpHandlerBase), typeof(T), ServiceLifetime.Singleton)); - return this; - } - public IJT808UdpNettyBuilder ReplaceSessionService() where T : IJT808UdpSessionService { Instance.JT808Builder.Services.Replace(new ServiceDescriptor(typeof(IJT808UdpSessionService), typeof(T), ServiceLifetime.Singleton)); diff --git a/src/JT808.DotNetty.Udp/JT808UdpDotnettyExtensions.cs b/src/JT808.DotNetty.Udp/JT808UdpDotnettyExtensions.cs index 5f93ce9..9e74f3d 100644 --- a/src/JT808.DotNetty.Udp/JT808UdpDotnettyExtensions.cs +++ b/src/JT808.DotNetty.Udp/JT808UdpDotnettyExtensions.cs @@ -3,13 +3,11 @@ using JT808.DotNetty.Core.Codecs; using JT808.DotNetty.Core.Handlers; using JT808.DotNetty.Core.Impls; using JT808.DotNetty.Core.Interfaces; -using JT808.DotNetty.Core.Jobs; using JT808.DotNetty.Core.Services; using JT808.DotNetty.Internal; using JT808.DotNetty.Udp.Handlers; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; -using Microsoft.Extensions.Internal; using System; using System.Runtime.CompilerServices; @@ -21,16 +19,12 @@ namespace JT808.DotNetty.Udp { public static IJT808UdpNettyBuilder AddJT808UdpNettyHost(this IJT808NettyBuilder jT808NettyBuilder) { - jT808NettyBuilder.JT808Builder.Services.TryAddSingleton(); jT808NettyBuilder.JT808Builder.Services.TryAddSingleton(); jT808NettyBuilder.JT808Builder.Services.TryAddSingleton(); jT808NettyBuilder.JT808Builder.Services.TryAddSingleton(); jT808NettyBuilder.JT808Builder.Services.TryAddSingleton(); - jT808NettyBuilder.JT808Builder.Services.TryAddSingleton(); jT808NettyBuilder.JT808Builder.Services.TryAddScoped(); jT808NettyBuilder.JT808Builder.Services.TryAddScoped(); - jT808NettyBuilder.JT808Builder.Services.AddHostedService(); - jT808NettyBuilder.JT808Builder.Services.AddHostedService(); jT808NettyBuilder.JT808Builder.Services.AddHostedService(); return new JT1078UdpBuilderDefault(jT808NettyBuilder); } diff --git a/src/JT808.DotNetty.WebApi/Handlers/JT808MsgIdDefaultWebApiHandler.cs b/src/JT808.DotNetty.WebApi/Handlers/JT808MsgIdDefaultWebApiHandler.cs index 0c7c775..83ab43d 100644 --- a/src/JT808.DotNetty.WebApi/Handlers/JT808MsgIdDefaultWebApiHandler.cs +++ b/src/JT808.DotNetty.WebApi/Handlers/JT808MsgIdDefaultWebApiHandler.cs @@ -18,8 +18,6 @@ namespace JT808.DotNetty.WebApi.Handlers private readonly JT808AtomicCounterService jT808UdpAtomicCounterService; - private readonly JT808TransmitAddressFilterService jT808TransmitAddressFilterService; - private readonly IJT808TcpSessionService jT808TcpSessionService; private readonly IJT808UdpSessionService jT808UdpSessionService; @@ -28,32 +26,19 @@ namespace JT808.DotNetty.WebApi.Handlers private readonly IJT808UnificationUdpSendService jT808UnificationUdpSendService; - private readonly JT808TrafficService jT808TcpTrafficService; - - private readonly JT808TrafficService jT808UdpTrafficService; - - private readonly JT808SimpleSystemCollectService jT808SimpleSystemCollectService; - /// /// TCP一套注入 /// /// public JT808MsgIdDefaultWebApiHandler( - JT808SimpleSystemCollectService jT808SimpleSystemCollectService, - JT808TrafficServiceFactory jT808TrafficServiceFactory, IJT808UnificationTcpSendService jT808UnificationTcpSendService, IJT808TcpSessionService jT808TcpSessionService, - JT808TransmitAddressFilterService jT808TransmitAddressFilterService, JT808AtomicCounterServiceFactory jT808AtomicCounterServiceFactory ) { - this.jT808SimpleSystemCollectService = jT808SimpleSystemCollectService; - this.jT808TcpTrafficService = jT808TrafficServiceFactory.Create(JT808TransportProtocolType.tcp); this.jT808UnificationTcpSendService = jT808UnificationTcpSendService; - this.jT808TcpSessionService = jT808TcpSessionService; - this.jT808TransmitAddressFilterService = jT808TransmitAddressFilterService; + this.jT808TcpSessionService = jT808TcpSessionService; this.jT808TcpAtomicCounterService = jT808AtomicCounterServiceFactory.Create(JT808TransportProtocolType.tcp); - InitCommonRoute(); InitTcpRoute(); } @@ -62,19 +47,14 @@ namespace JT808.DotNetty.WebApi.Handlers /// /// public JT808MsgIdDefaultWebApiHandler( - JT808SimpleSystemCollectService jT808SimpleSystemCollectService, - JT808TrafficServiceFactory jT808TrafficServiceFactory, IJT808UdpSessionService jT808UdpSessionService, IJT808UnificationUdpSendService jT808UnificationUdpSendService, JT808AtomicCounterServiceFactory jT808AtomicCounterServiceFactory ) { - this.jT808SimpleSystemCollectService = jT808SimpleSystemCollectService; - this.jT808UdpTrafficService = jT808TrafficServiceFactory.Create(JT808TransportProtocolType.udp); this.jT808UdpSessionService = jT808UdpSessionService; this.jT808UnificationUdpSendService = jT808UnificationUdpSendService; this.jT808UdpAtomicCounterService = jT808AtomicCounterServiceFactory.Create(JT808TransportProtocolType.udp); - InitCommonRoute(); InitUdpRoute(); } @@ -84,27 +64,19 @@ namespace JT808.DotNetty.WebApi.Handlers /// /// public JT808MsgIdDefaultWebApiHandler( - JT808SimpleSystemCollectService jT808SimpleSystemCollectService, - JT808TrafficServiceFactory jT808TrafficServiceFactory, IJT808UnificationTcpSendService jT808UnificationTcpSendService, IJT808UnificationUdpSendService jT808UnificationUdpSendService, IJT808TcpSessionService jT808TcpSessionService, IJT808UdpSessionService jT808UdpSessionService, - JT808TransmitAddressFilterService jT808TransmitAddressFilterService, JT808AtomicCounterServiceFactory jT808AtomicCounterServiceFactory ) { - this.jT808SimpleSystemCollectService = jT808SimpleSystemCollectService; - this.jT808TcpTrafficService = jT808TrafficServiceFactory.Create(JT808TransportProtocolType.tcp); - this.jT808UdpTrafficService = jT808TrafficServiceFactory.Create(JT808TransportProtocolType.udp); this.jT808UdpSessionService = jT808UdpSessionService; this.jT808UnificationTcpSendService = jT808UnificationTcpSendService; this.jT808UnificationUdpSendService = jT808UnificationUdpSendService; this.jT808TcpSessionService = jT808TcpSessionService; - this.jT808TransmitAddressFilterService = jT808TransmitAddressFilterService; this.jT808TcpAtomicCounterService = jT808AtomicCounterServiceFactory.Create(JT808TransportProtocolType.tcp); this.jT808UdpAtomicCounterService = jT808AtomicCounterServiceFactory.Create(JT808TransportProtocolType.udp); - InitCommonRoute(); InitTcpRoute(); InitUdpRoute(); } @@ -161,44 +133,6 @@ namespace JT808.DotNetty.WebApi.Handlers return CreateJT808HttpResponse(result); } - /// - /// 添加转发过滤地址 - /// - /// - /// - public JT808HttpResponse AddTransmitAddress(JT808HttpRequest request) - { - if (string.IsNullOrEmpty(request.Json)) - { - return EmptyHttpResponse(); - } - return CreateJT808HttpResponse(jT808TransmitAddressFilterService.Add(request.Json)); - } - - /// - /// 删除转发过滤地址(不能删除在网关服务器配置文件配的地址) - /// - /// - /// - public JT808HttpResponse RemoveTransmitAddress(JT808HttpRequest request) - { - if (string.IsNullOrEmpty(request.Json)) - { - return EmptyHttpResponse(); - } - return CreateJT808HttpResponse(jT808TransmitAddressFilterService.Remove(request.Json)); - } - - /// - /// 获取转发过滤地址信息集合 - /// - /// - /// - public JT808HttpResponse GetTransmitAll(JT808HttpRequest request) - { - return CreateJT808HttpResponse(jT808TransmitAddressFilterService.GetAll()); - } - /// /// 获取Tcp包计数器 /// @@ -265,61 +199,12 @@ namespace JT808.DotNetty.WebApi.Handlers return CreateJT808HttpResponse(result); } - /// - /// 基于Tcp的流量获取 - /// - /// - /// - public JT808HttpResponse TrafficTcpGet(JT808HttpRequest request) - { - JT808ResultDto jT808ResultDto = new JT808ResultDto(); - jT808ResultDto.Data = new JT808TrafficInfoDto(); - jT808ResultDto.Data.TotalReceiveSize = (jT808TcpTrafficService.TotalReceiveSize * 1.0) / 1024; - jT808ResultDto.Data.TotalSendSize = (jT808TcpTrafficService.TotalSendSize * 1.0) / 1024; - return CreateJT808HttpResponse(jT808ResultDto); - } - - /// - /// 基于Udp的流量获取 - /// - /// - /// - public JT808HttpResponse TrafficUdpGet(JT808HttpRequest request) - { - JT808ResultDto jT808ResultDto = new JT808ResultDto(); - jT808ResultDto.Data = new JT808TrafficInfoDto(); - jT808ResultDto.Data.TotalReceiveSize = (jT808UdpTrafficService.TotalReceiveSize * 1.0) / 1024; - jT808ResultDto.Data.TotalSendSize = (jT808UdpTrafficService.TotalSendSize * 1.0) / 1024; - return CreateJT808HttpResponse(jT808ResultDto); - } - - /// - /// 获取当前系统进程使用率 - /// - /// - /// - public JT808HttpResponse SystemCollectGet(JT808HttpRequest request) - { - JT808ResultDto jT808ResultDto = new JT808ResultDto(); - jT808ResultDto.Data = jT808SimpleSystemCollectService.Get(); - return CreateJT808HttpResponse(jT808ResultDto); - } - - protected virtual void InitCommonRoute() - { - CreateRoute(JT808Constants.JT808WebApiRouteTable.SystemCollectGet, SystemCollectGet); - } - protected virtual void InitTcpRoute() { - CreateRoute(JT808Constants.JT808WebApiRouteTable.TransmitAdd, AddTransmitAddress); - CreateRoute(JT808Constants.JT808WebApiRouteTable.TransmitRemove, RemoveTransmitAddress); - CreateRoute(JT808Constants.JT808WebApiRouteTable.TransmitGetAll, GetTransmitAll); CreateRoute(JT808Constants.JT808WebApiRouteTable.GetTcpAtomicCounter, GetTcpAtomicCounter); CreateRoute(JT808Constants.JT808WebApiRouteTable.SessionTcpGetAll, GetTcpSessionAll); CreateRoute(JT808Constants.JT808WebApiRouteTable.SessionTcpRemoveByTerminalPhoneNo, RemoveTcpSessionByTerminalPhoneNo); CreateRoute(JT808Constants.JT808WebApiRouteTable.UnificationTcpSend, UnificationTcpSend); - CreateRoute(JT808Constants.JT808WebApiRouteTable.TrafficTcpGet, TrafficTcpGet); } protected virtual void InitUdpRoute() @@ -328,7 +213,6 @@ namespace JT808.DotNetty.WebApi.Handlers CreateRoute(JT808Constants.JT808WebApiRouteTable.UnificationUdpSend, UnificationUdpSend); CreateRoute(JT808Constants.JT808WebApiRouteTable.SessionUdpGetAll, GetUdpSessionAll); CreateRoute(JT808Constants.JT808WebApiRouteTable.SessionUdpRemoveByTerminalPhoneNo, RemoveUdpSessionByTerminalPhoneNo); - CreateRoute(JT808Constants.JT808WebApiRouteTable.TrafficUdpGet, TrafficUdpGet); } } } diff --git a/src/JT808.DotNetty.WebApiClientTool/IJT808DotNettyWebApi.cs b/src/JT808.DotNetty.WebApiClientTool/IJT808DotNettyWebApi.cs index 3f6613c..e96248b 100644 --- a/src/JT808.DotNetty.WebApiClientTool/IJT808DotNettyWebApi.cs +++ b/src/JT808.DotNetty.WebApiClientTool/IJT808DotNettyWebApi.cs @@ -29,38 +29,12 @@ namespace JT808.DotNetty.WebApiClientTool [HttpPost("Tcp/UnificationSend")] ITask> UnificationTcpSend([JsonContent]JT808UnificationSendRequestDto jT808UnificationSendRequestDto); /// - /// 添加转发过滤地址 - /// - /// - /// - [HttpPost("Tcp/Transmit/Add")] - ITask> AddTransmitAddress([JsonContent]JT808IPAddressDto jT808IPAddressDto); - /// - /// 删除转发过滤地址(不能删除在网关服务器配置文件配的地址) - /// - /// - /// - [HttpPost("Tcp/Transmit/Remove")] - ITask> RemoveTransmitAddress([JsonContent]JT808IPAddressDto jT808IPAddressDto); - /// - /// 获取转发过滤地址信息集合 - /// - /// - [HttpGet("Tcp/Transmit/GetAll")] - ITask>> GetTransmitAll(); - /// /// 获取Tcp包计数器 /// /// /// [HttpGet("Tcp/GetAtomicCounter")] ITask> GetTcpAtomicCounter(); - /// - /// 基于Tcp的流量获取 - /// - /// - [HttpGet("Tcp/Traffic/Get")] - ITask> GetTcpTraffic(); #endregion @@ -87,26 +61,11 @@ namespace JT808.DotNetty.WebApiClientTool [HttpPost("Udp/UnificationSend")] ITask> UnificationUdpSend([JsonContent]JT808UnificationSendRequestDto jT808UnificationSendRequestDto); /// - /// 基于Udp的流量获取 - /// - /// - [HttpGet("Udp/Traffic/Get")] - ITask> GetUdpTraffic(); - /// /// 获取Udp包计数器 /// /// [HttpGet("Udp/GetAtomicCounter")] ITask> GetUdpAtomicCounter(); #endregion - - #region 公共部分 - /// - /// 获取当前系统进程使用率 - /// - /// - [HttpGet("SystemCollect/Get")] - ITask> GetSystemCollect(); - #endregion } }