2.增加tcp统一出口编码器 3.修改统一的应答接口 4.修改包装udp编码器 5.修改udp端口为808 6.增加上下行数据包日志接口 7.修改webapi返回数据太多导致被截断tags/v1.2.0
@@ -1,3 +0,0 @@ | |||||
[submodule "src/JT808.Protocol"] | |||||
path = src/JT808.Protocol | |||||
url = https://github.com/SmallChi/JT808.git |
@@ -43,6 +43,8 @@ | |||||
|:------:|:------|:------| | |:------:|:------|:------| | ||||
| IJT808SessionPublishing| 会话通知(在线/离线)| 有些超长待机的设备,不会实时保持连接,那么通过平台下发的命令是无法到达的,这时候就需要设备一上线,就即时通知服务去处理,然后在即时的下发消息到设备。| | | IJT808SessionPublishing| 会话通知(在线/离线)| 有些超长待机的设备,不会实时保持连接,那么通过平台下发的命令是无法到达的,这时候就需要设备一上线,就即时通知服务去处理,然后在即时的下发消息到设备。| | ||||
| IJT808SourcePackageDispatcher| 原包分发器| 需要将源数据转给其他平台| | | IJT808SourcePackageDispatcher| 原包分发器| 需要将源数据转给其他平台| | ||||
| IJT808UplinkPacket| 上行数据包处理接口| 平台需要查看网关的上行数据日志(可以配合InfluxDB使用)| | |||||
| IJT808DownlinkPacket| 下行数据包处理接口| 平台需要查看网关的下行数据日志(可以配合InfluxDB使用)| | |||||
> 只要实现IJT808SessionPublishing接口的任意一款MQ都能实现该功能。 | > 只要实现IJT808SessionPublishing接口的任意一款MQ都能实现该功能。 | ||||
@@ -0,0 +1,15 @@ | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Text; | |||||
namespace JT808.DotNetty.Abstractions.Enums | |||||
{ | |||||
/// <summary> | |||||
/// 传输协议类型 | |||||
/// </summary> | |||||
public enum JT808TransportProtocolType | |||||
{ | |||||
tcp=1, | |||||
udp = 2 | |||||
} | |||||
} |
@@ -0,0 +1,22 @@ | |||||
using JT808.DotNetty.Abstractions.Enums; | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Text; | |||||
using System.Threading.Tasks; | |||||
namespace JT808.DotNetty.Abstractions | |||||
{ | |||||
/// <summary> | |||||
/// 下行数据包处理接口 | |||||
/// </summary> | |||||
public interface IJT808DownlinkPacket | |||||
{ | |||||
/// <summary> | |||||
/// | |||||
/// </summary> | |||||
/// <param name="data">数据包</param> | |||||
/// <param name="protocolType">协议类型:tcp/udp</param> | |||||
/// <returns></returns> | |||||
Task ProcessorAsync(byte[] data, JT808TransportProtocolType transportProtocolType); | |||||
} | |||||
} |
@@ -0,0 +1,19 @@ | |||||
using JT808.DotNetty.Abstractions.Enums; | |||||
using System.Threading.Tasks; | |||||
namespace JT808.DotNetty.Abstractions | |||||
{ | |||||
/// <summary> | |||||
/// 上行数据包处理接口 | |||||
/// </summary> | |||||
public interface IJT808UplinkPacket | |||||
{ | |||||
/// <summary> | |||||
/// | |||||
/// </summary> | |||||
/// <param name="data">数据包</param> | |||||
/// <param name="transportProtocolType">传输协议类型</param> | |||||
/// <returns></returns> | |||||
Task ProcessorAsync(byte[] data, JT808TransportProtocolType transportProtocolType); | |||||
} | |||||
} |
@@ -12,9 +12,9 @@ | |||||
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance> | <PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance> | ||||
<RepositoryUrl>https://github.com/SmallChi/JT808DotNetty</RepositoryUrl> | <RepositoryUrl>https://github.com/SmallChi/JT808DotNetty</RepositoryUrl> | ||||
<PackageProjectUrl>https://github.com/SmallChi/JT808DotNetty</PackageProjectUrl> | <PackageProjectUrl>https://github.com/SmallChi/JT808DotNetty</PackageProjectUrl> | ||||
<PackageLicenseUrl>https://github.com/SmallChi/JT808DotNetty/blob/master/LICENSE</PackageLicenseUrl> | |||||
<license>https://github.com/SmallChi/JT808DotNetty/blob/master/LICENSE</license> | |||||
<GeneratePackageOnBuild>true</GeneratePackageOnBuild> | <GeneratePackageOnBuild>true</GeneratePackageOnBuild> | ||||
<Version>1.1.1</Version> | |||||
<Version>1.2.0</Version> | |||||
</PropertyGroup> | </PropertyGroup> | ||||
</Project> | </Project> |
@@ -12,23 +12,20 @@ | |||||
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance> | <PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance> | ||||
<RepositoryUrl>https://github.com/SmallChi/JT808DotNetty</RepositoryUrl> | <RepositoryUrl>https://github.com/SmallChi/JT808DotNetty</RepositoryUrl> | ||||
<PackageProjectUrl>https://github.com/SmallChi/JT808DotNetty</PackageProjectUrl> | <PackageProjectUrl>https://github.com/SmallChi/JT808DotNetty</PackageProjectUrl> | ||||
<PackageLicenseUrl>https://github.com/SmallChi/JT808DotNetty/blob/master/LICENSE</PackageLicenseUrl> | |||||
<license>https://github.com/SmallChi/JT808DotNetty/blob/master/LICENSE</license> | |||||
<GeneratePackageOnBuild>true</GeneratePackageOnBuild> | <GeneratePackageOnBuild>true</GeneratePackageOnBuild> | ||||
<Version>1.1.1</Version> | |||||
<Version>1.2.0</Version> | |||||
</PropertyGroup> | </PropertyGroup> | ||||
<ItemGroup> | <ItemGroup> | ||||
<PackageReference Include="DotNetty.Handlers" Version="0.6.0" /> | <PackageReference Include="DotNetty.Handlers" Version="0.6.0" /> | ||||
<PackageReference Include="DotNetty.Transport.Libuv" Version="0.6.0" /> | <PackageReference Include="DotNetty.Transport.Libuv" Version="0.6.0" /> | ||||
<PackageReference Include="DotNetty.Codecs" Version="0.6.0" /> | <PackageReference Include="DotNetty.Codecs" Version="0.6.0" /> | ||||
<PackageReference Include="JT808" Version="1.3.0" /> | |||||
<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="2.2.0" /> | <PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="2.2.0" /> | ||||
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="2.2.0" /> | <PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="2.2.0" /> | ||||
<PackageReference Include="Newtonsoft.Json" Version="12.0.1" /> | <PackageReference Include="Newtonsoft.Json" Version="12.0.1" /> | ||||
<PackageReference Include="Microsoft.Extensions.Options" Version="2.2.0" /> | <PackageReference Include="Microsoft.Extensions.Options" Version="2.2.0" /> | ||||
</ItemGroup> | </ItemGroup> | ||||
<ItemGroup> | |||||
<ProjectReference Include="..\JT808.Protocol\src\JT808.Protocol\JT808.Protocol.csproj" /> | |||||
</ItemGroup> | |||||
</Project> | </Project> |
@@ -5,6 +5,8 @@ using DotNetty.Transport.Channels; | |||||
using JT808.DotNetty.Core.Interfaces; | using JT808.DotNetty.Core.Interfaces; | ||||
using Microsoft.Extensions.Logging; | using Microsoft.Extensions.Logging; | ||||
using JT808.DotNetty.Core.Services; | using JT808.DotNetty.Core.Services; | ||||
using JT808.DotNetty.Abstractions; | |||||
using JT808.DotNetty.Abstractions.Enums; | |||||
namespace JT808.DotNetty.Core.Codecs | namespace JT808.DotNetty.Core.Codecs | ||||
{ | { | ||||
@@ -17,10 +19,15 @@ namespace JT808.DotNetty.Core.Codecs | |||||
private readonly JT808TrafficService jT808TrafficService; | private readonly JT808TrafficService jT808TrafficService; | ||||
public JT808TcpEncoder(ILoggerFactory loggerFactory, JT808TrafficServiceFactory jT808TrafficServiceFactory) | |||||
private readonly IJT808DownlinkPacket jT808DownlinkPacket; | |||||
public JT808TcpEncoder(ILoggerFactory loggerFactory, | |||||
JT808TrafficServiceFactory jT808TrafficServiceFactory, | |||||
IJT808DownlinkPacket jT808DownlinkPacket) | |||||
{ | { | ||||
logger = loggerFactory.CreateLogger<JT808TcpEncoder>(); | logger = loggerFactory.CreateLogger<JT808TcpEncoder>(); | ||||
this.jT808TrafficService = jT808TrafficServiceFactory.Create(Core.Enums.JT808ModeType.Tcp); | |||||
this.jT808TrafficService = jT808TrafficServiceFactory.Create(JT808TransportProtocolType.tcp); | |||||
this.jT808DownlinkPacket = jT808DownlinkPacket; | |||||
} | } | ||||
protected override void Encode(IChannelHandlerContext context, IJT808Reply message, IByteBuffer output) | protected override void Encode(IChannelHandlerContext context, IJT808Reply message, IByteBuffer output) | ||||
@@ -31,6 +38,7 @@ namespace JT808.DotNetty.Core.Codecs | |||||
{ | { | ||||
var sendData = JT808Serializer.Serialize(message.Package, message.MinBufferSize); | var sendData = JT808Serializer.Serialize(message.Package, message.MinBufferSize); | ||||
jT808TrafficService.SendSize(sendData.Length); | jT808TrafficService.SendSize(sendData.Length); | ||||
jT808DownlinkPacket.ProcessorAsync(sendData, JT808TransportProtocolType.tcp); | |||||
output.WriteBytes(Unpooled.WrappedBuffer(sendData)); | output.WriteBytes(Unpooled.WrappedBuffer(sendData)); | ||||
} | } | ||||
catch (JT808.Protocol.Exceptions.JT808Exception ex) | catch (JT808.Protocol.Exceptions.JT808Exception ex) | ||||
@@ -45,6 +53,7 @@ namespace JT808.DotNetty.Core.Codecs | |||||
else if (message.HexData != null) | else if (message.HexData != null) | ||||
{ | { | ||||
jT808TrafficService.SendSize(message.HexData.Length); | jT808TrafficService.SendSize(message.HexData.Length); | ||||
jT808DownlinkPacket.ProcessorAsync(message.HexData, JT808TransportProtocolType.tcp); | |||||
output.WriteBytes(Unpooled.WrappedBuffer(message.HexData)); | output.WriteBytes(Unpooled.WrappedBuffer(message.HexData)); | ||||
} | } | ||||
} | } | ||||
@@ -8,7 +8,7 @@ namespace JT808.DotNetty.Core.Configurations | |||||
{ | { | ||||
public int TcpPort { get; set; } = 808; | public int TcpPort { get; set; } = 808; | ||||
public int UdpPort { get; set; } = 818; | |||||
public int UdpPort { get; set; } = 808; | |||||
public int QuietPeriodSeconds { get; set; } = 1; | public int QuietPeriodSeconds { get; set; } = 1; | ||||
@@ -0,0 +1,33 @@ | |||||
using DotNetty.Buffers; | |||||
using DotNetty.Transport.Channels.Sockets; | |||||
using JT808.DotNetty.Abstractions; | |||||
using JT808.DotNetty.Abstractions.Enums; | |||||
using JT808.DotNetty.Core.Interfaces; | |||||
using JT808.DotNetty.Core.Services; | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Net; | |||||
using System.Text; | |||||
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); | |||||
} | |||||
} | |||||
} |
@@ -0,0 +1,17 @@ | |||||
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; | |||||
} | |||||
} | |||||
} |
@@ -0,0 +1,17 @@ | |||||
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; | |||||
} | |||||
} | |||||
} |
@@ -0,0 +1,13 @@ | |||||
using DotNetty.Transport.Channels.Sockets; | |||||
using System.Net; | |||||
namespace JT808.DotNetty.Core.Interfaces | |||||
{ | |||||
/// <summary> | |||||
/// 基于udp的创建发送包 | |||||
/// </summary> | |||||
interface IJT808DatagramPacket | |||||
{ | |||||
DatagramPacket Create(byte[] message, EndPoint recipient); | |||||
} | |||||
} |
@@ -12,9 +12,9 @@ | |||||
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance> | <PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance> | ||||
<RepositoryUrl>https://github.com/SmallChi/JT808DotNetty</RepositoryUrl> | <RepositoryUrl>https://github.com/SmallChi/JT808DotNetty</RepositoryUrl> | ||||
<PackageProjectUrl>https://github.com/SmallChi/JT808DotNetty</PackageProjectUrl> | <PackageProjectUrl>https://github.com/SmallChi/JT808DotNetty</PackageProjectUrl> | ||||
<PackageLicenseUrl>https://github.com/SmallChi/JT808DotNetty/blob/master/LICENSE</PackageLicenseUrl> | |||||
<license>https://github.com/SmallChi/JT808DotNetty/blob/master/LICENSE</license> | |||||
<GeneratePackageOnBuild>true</GeneratePackageOnBuild> | <GeneratePackageOnBuild>true</GeneratePackageOnBuild> | ||||
<Version>1.1.1</Version> | |||||
<Version>1.2.0</Version> | |||||
</PropertyGroup> | </PropertyGroup> | ||||
<ItemGroup> | <ItemGroup> | ||||
@@ -25,6 +25,7 @@ | |||||
<PackageReference Include="DotNetty.Handlers" Version="0.6.0" /> | <PackageReference Include="DotNetty.Handlers" Version="0.6.0" /> | ||||
<PackageReference Include="DotNetty.Transport.Libuv" Version="0.6.0" /> | <PackageReference Include="DotNetty.Transport.Libuv" Version="0.6.0" /> | ||||
<PackageReference Include="DotNetty.Codecs" Version="0.6.0" /> | <PackageReference Include="DotNetty.Codecs" Version="0.6.0" /> | ||||
<PackageReference Include="JT808" Version="1.3.0" /> | |||||
<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="2.2.0" /> | <PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="2.2.0" /> | ||||
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="2.2.0" /> | <PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="2.2.0" /> | ||||
<PackageReference Include="Newtonsoft.Json" Version="12.0.2" /> | <PackageReference Include="Newtonsoft.Json" Version="12.0.2" /> | ||||
@@ -33,7 +34,6 @@ | |||||
<ItemGroup> | <ItemGroup> | ||||
<ProjectReference Include="..\JT808.DotNetty.Abstractions\JT808.DotNetty.Abstractions.csproj" /> | <ProjectReference Include="..\JT808.DotNetty.Abstractions\JT808.DotNetty.Abstractions.csproj" /> | ||||
<ProjectReference Include="..\JT808.Protocol\src\JT808.Protocol\JT808.Protocol.csproj" /> | |||||
</ItemGroup> | </ItemGroup> | ||||
</Project> | </Project> |
@@ -55,6 +55,8 @@ namespace JT808.DotNetty.Core | |||||
} | } | ||||
serviceDescriptors.Configure<JT808Configuration>(configuration.GetSection("JT808Configuration")); | serviceDescriptors.Configure<JT808Configuration>(configuration.GetSection("JT808Configuration")); | ||||
serviceDescriptors.TryAddSingleton<IJT808SessionPublishing, JT808SessionPublishingEmptyImpl>(); | serviceDescriptors.TryAddSingleton<IJT808SessionPublishing, JT808SessionPublishingEmptyImpl>(); | ||||
serviceDescriptors.TryAddSingleton<IJT808DownlinkPacket, JT808DownlinkPacketEmptyImpl>(); | |||||
serviceDescriptors.TryAddSingleton<IJT808UplinkPacket, JT808UplinkPacketEmptyImpl>(); | |||||
serviceDescriptors.TryAddSingleton<IJT808SourcePackageDispatcher, JT808SourcePackageDispatcherEmptyImpl>(); | serviceDescriptors.TryAddSingleton<IJT808SourcePackageDispatcher, JT808SourcePackageDispatcherEmptyImpl>(); | ||||
serviceDescriptors.TryAddSingleton<JT808AtomicCounterServiceFactory>(); | serviceDescriptors.TryAddSingleton<JT808AtomicCounterServiceFactory>(); | ||||
serviceDescriptors.TryAddSingleton<JT808TrafficServiceFactory>(); | serviceDescriptors.TryAddSingleton<JT808TrafficServiceFactory>(); | ||||
@@ -80,6 +82,8 @@ namespace JT808.DotNetty.Core | |||||
} | } | ||||
serviceDescriptors.Configure(jt808Options); | serviceDescriptors.Configure(jt808Options); | ||||
serviceDescriptors.TryAddSingleton<IJT808SessionPublishing, JT808SessionPublishingEmptyImpl>(); | serviceDescriptors.TryAddSingleton<IJT808SessionPublishing, JT808SessionPublishingEmptyImpl>(); | ||||
serviceDescriptors.TryAddSingleton<IJT808DownlinkPacket, JT808DownlinkPacketEmptyImpl>(); | |||||
serviceDescriptors.TryAddSingleton<IJT808UplinkPacket, JT808UplinkPacketEmptyImpl>(); | |||||
serviceDescriptors.TryAddSingleton<IJT808SourcePackageDispatcher, JT808SourcePackageDispatcherEmptyImpl>(); | serviceDescriptors.TryAddSingleton<IJT808SourcePackageDispatcher, JT808SourcePackageDispatcherEmptyImpl>(); | ||||
serviceDescriptors.TryAddSingleton<JT808AtomicCounterServiceFactory>(); | serviceDescriptors.TryAddSingleton<JT808AtomicCounterServiceFactory>(); | ||||
serviceDescriptors.TryAddSingleton<JT808TrafficServiceFactory>(); | serviceDescriptors.TryAddSingleton<JT808TrafficServiceFactory>(); | ||||
@@ -1,4 +1,5 @@ | |||||
using JT808.DotNetty.Core.Services; | |||||
using JT808.DotNetty.Abstractions.Enums; | |||||
using JT808.DotNetty.Core.Services; | |||||
using Microsoft.Extensions.Logging; | using Microsoft.Extensions.Logging; | ||||
using System.Threading; | using System.Threading; | ||||
using System.Threading.Tasks; | using System.Threading.Tasks; | ||||
@@ -15,7 +16,7 @@ namespace JT808.DotNetty.Core.Jobs | |||||
JT808AtomicCounterServiceFactory jT808AtomicCounterServiceFactory, | JT808AtomicCounterServiceFactory jT808AtomicCounterServiceFactory, | ||||
ILoggerFactory loggerFactory) | ILoggerFactory loggerFactory) | ||||
{ | { | ||||
_jT808AtomicCounterService = jT808AtomicCounterServiceFactory.Create(Enums.JT808ModeType.Tcp); | |||||
_jT808AtomicCounterService = jT808AtomicCounterServiceFactory.Create(JT808TransportProtocolType.tcp); | |||||
_logger =loggerFactory.CreateLogger<JT808TcpAtomicCouterResetDailyJob>(); | _logger =loggerFactory.CreateLogger<JT808TcpAtomicCouterResetDailyJob>(); | ||||
} | } | ||||
@@ -1,4 +1,5 @@ | |||||
using JT808.DotNetty.Core.Services; | |||||
using JT808.DotNetty.Abstractions.Enums; | |||||
using JT808.DotNetty.Core.Services; | |||||
using Microsoft.Extensions.Logging; | using Microsoft.Extensions.Logging; | ||||
using System.Threading; | using System.Threading; | ||||
using System.Threading.Tasks; | using System.Threading.Tasks; | ||||
@@ -15,7 +16,7 @@ namespace JT808.DotNetty.Core.Jobs | |||||
JT808TrafficServiceFactory jT808TrafficServiceFactory, | JT808TrafficServiceFactory jT808TrafficServiceFactory, | ||||
ILoggerFactory loggerFactory) | ILoggerFactory loggerFactory) | ||||
{ | { | ||||
_jT808TrafficService = jT808TrafficServiceFactory.Create( Enums.JT808ModeType.Tcp); | |||||
_jT808TrafficService = jT808TrafficServiceFactory.Create(JT808TransportProtocolType.tcp); | |||||
_logger =loggerFactory.CreateLogger<JT808TcpTrafficResetDailyJob>(); | _logger =loggerFactory.CreateLogger<JT808TcpTrafficResetDailyJob>(); | ||||
} | } | ||||
@@ -1,4 +1,5 @@ | |||||
using JT808.DotNetty.Core.Services; | |||||
using JT808.DotNetty.Abstractions.Enums; | |||||
using JT808.DotNetty.Core.Services; | |||||
using Microsoft.Extensions.Logging; | using Microsoft.Extensions.Logging; | ||||
using System.Threading; | using System.Threading; | ||||
using System.Threading.Tasks; | using System.Threading.Tasks; | ||||
@@ -15,7 +16,7 @@ namespace JT808.DotNetty.Core.Jobs | |||||
JT808AtomicCounterServiceFactory jT808AtomicCounterServiceFactory, | JT808AtomicCounterServiceFactory jT808AtomicCounterServiceFactory, | ||||
ILoggerFactory loggerFactory) | ILoggerFactory loggerFactory) | ||||
{ | { | ||||
_jT808AtomicCounterService = jT808AtomicCounterServiceFactory.Create(Enums.JT808ModeType.Udp); | |||||
_jT808AtomicCounterService = jT808AtomicCounterServiceFactory.Create(JT808TransportProtocolType.udp); | |||||
_logger =loggerFactory.CreateLogger<JT808UdpAtomicCouterResetDailyJob>(); | _logger =loggerFactory.CreateLogger<JT808UdpAtomicCouterResetDailyJob>(); | ||||
} | } | ||||
@@ -1,4 +1,5 @@ | |||||
using JT808.DotNetty.Core.Services; | |||||
using JT808.DotNetty.Abstractions.Enums; | |||||
using JT808.DotNetty.Core.Services; | |||||
using Microsoft.Extensions.Logging; | using Microsoft.Extensions.Logging; | ||||
using System.Threading; | using System.Threading; | ||||
using System.Threading.Tasks; | using System.Threading.Tasks; | ||||
@@ -15,7 +16,7 @@ namespace JT808.DotNetty.Core.Jobs | |||||
JT808TrafficServiceFactory jT808TrafficServiceFactory, | JT808TrafficServiceFactory jT808TrafficServiceFactory, | ||||
ILoggerFactory loggerFactory) | ILoggerFactory loggerFactory) | ||||
{ | { | ||||
_jT808TrafficService = jT808TrafficServiceFactory.Create(Enums.JT808ModeType.Udp); | |||||
_jT808TrafficService = jT808TrafficServiceFactory.Create(JT808TransportProtocolType.udp); | |||||
_logger =loggerFactory.CreateLogger<JT808UdpTrafficResetDailyJob>(); | _logger =loggerFactory.CreateLogger<JT808UdpTrafficResetDailyJob>(); | ||||
} | } | ||||
@@ -1,4 +1,4 @@ | |||||
using JT808.DotNetty.Core.Enums; | |||||
using JT808.DotNetty.Abstractions.Enums; | |||||
using System; | using System; | ||||
using System.Collections.Concurrent; | using System.Collections.Concurrent; | ||||
@@ -6,14 +6,14 @@ namespace JT808.DotNetty.Core.Services | |||||
{ | { | ||||
public class JT808AtomicCounterServiceFactory | public class JT808AtomicCounterServiceFactory | ||||
{ | { | ||||
private readonly ConcurrentDictionary<JT808ModeType, JT808AtomicCounterService> cache; | |||||
private readonly ConcurrentDictionary<JT808TransportProtocolType, JT808AtomicCounterService> cache; | |||||
public JT808AtomicCounterServiceFactory() | public JT808AtomicCounterServiceFactory() | ||||
{ | { | ||||
cache = new ConcurrentDictionary<JT808ModeType, JT808AtomicCounterService>(); | |||||
cache = new ConcurrentDictionary<JT808TransportProtocolType, JT808AtomicCounterService>(); | |||||
} | } | ||||
public JT808AtomicCounterService Create(JT808ModeType type) | |||||
public JT808AtomicCounterService Create(JT808TransportProtocolType type) | |||||
{ | { | ||||
if(cache.TryGetValue(type,out var service)) | if(cache.TryGetValue(type,out var service)) | ||||
{ | { | ||||
@@ -1,4 +1,4 @@ | |||||
using JT808.DotNetty.Core.Enums; | |||||
using JT808.DotNetty.Abstractions.Enums; | |||||
using JT808.DotNetty.Core.Metadata; | using JT808.DotNetty.Core.Metadata; | ||||
using System; | using System; | ||||
using System.Collections.Concurrent; | using System.Collections.Concurrent; | ||||
@@ -9,14 +9,14 @@ namespace JT808.DotNetty.Core.Services | |||||
{ | { | ||||
public class JT808TrafficServiceFactory | public class JT808TrafficServiceFactory | ||||
{ | { | ||||
private readonly ConcurrentDictionary<JT808ModeType, JT808TrafficService> cache; | |||||
private readonly ConcurrentDictionary<JT808TransportProtocolType, JT808TrafficService> cache; | |||||
public JT808TrafficServiceFactory() | public JT808TrafficServiceFactory() | ||||
{ | { | ||||
cache = new ConcurrentDictionary<JT808ModeType, JT808TrafficService>(); | |||||
cache = new ConcurrentDictionary<JT808TransportProtocolType, JT808TrafficService>(); | |||||
} | } | ||||
public JT808TrafficService Create(JT808ModeType type) | |||||
public JT808TrafficService Create(JT808TransportProtocolType type) | |||||
{ | { | ||||
if (cache.TryGetValue(type, out var service)) | if (cache.TryGetValue(type, out var service)) | ||||
{ | { | ||||
@@ -12,13 +12,13 @@ namespace JT808.DotNetty.Internal | |||||
{ | { | ||||
private readonly JT808UdpSessionManager jT808SessionManager; | private readonly JT808UdpSessionManager jT808SessionManager; | ||||
private readonly JT808TrafficService jT808TrafficService; | |||||
private readonly IJT808DatagramPacket jT808DatagramPacket; | |||||
public JT808UnificationUdpSendService( | public JT808UnificationUdpSendService( | ||||
JT808TrafficServiceFactory jT808TrafficServiceFactory, | |||||
IJT808DatagramPacket jT808DatagramPacket, | |||||
JT808UdpSessionManager jT808SessionManager) | JT808UdpSessionManager jT808SessionManager) | ||||
{ | { | ||||
this.jT808TrafficService = jT808TrafficServiceFactory.Create(Core.Enums.JT808ModeType.Udp); | |||||
this.jT808DatagramPacket = jT808DatagramPacket; | |||||
this.jT808SessionManager = jT808SessionManager; | this.jT808SessionManager = jT808SessionManager; | ||||
} | } | ||||
@@ -30,8 +30,7 @@ namespace JT808.DotNetty.Internal | |||||
var session = jT808SessionManager.GetSession(terminalPhoneNo); | var session = jT808SessionManager.GetSession(terminalPhoneNo); | ||||
if (session != null) | if (session != null) | ||||
{ | { | ||||
jT808TrafficService.SendSize(data.Length); | |||||
session.Channel.WriteAndFlushAsync(new DatagramPacket(Unpooled.WrappedBuffer(data), session.Sender)); | |||||
session.Channel.WriteAndFlushAsync(jT808DatagramPacket.Create(data, session.Sender)); | |||||
resultDto.Code = JT808ResultCode.Ok; | resultDto.Code = JT808ResultCode.Ok; | ||||
resultDto.Data = true; | resultDto.Data = true; | ||||
} | } | ||||
@@ -9,6 +9,7 @@ using JT808.DotNetty.Core.Handlers; | |||||
using JT808.DotNetty.Core.Services; | using JT808.DotNetty.Core.Services; | ||||
using JT808.DotNetty.Core.Metadata; | using JT808.DotNetty.Core.Metadata; | ||||
using JT808.DotNetty.Core.Interfaces; | using JT808.DotNetty.Core.Interfaces; | ||||
using JT808.DotNetty.Abstractions.Enums; | |||||
namespace JT808.DotNetty.Tcp.Handlers | namespace JT808.DotNetty.Tcp.Handlers | ||||
{ | { | ||||
@@ -29,6 +30,8 @@ namespace JT808.DotNetty.Tcp.Handlers | |||||
private readonly JT808TrafficService jT808TrafficService; | private readonly JT808TrafficService jT808TrafficService; | ||||
private readonly IJT808UplinkPacket jT808UplinkPacket; | |||||
private readonly ILogger<JT808TcpServerHandler> logger; | private readonly ILogger<JT808TcpServerHandler> logger; | ||||
private readonly ILogger unknownLogger; | private readonly ILogger unknownLogger; | ||||
@@ -38,16 +41,18 @@ namespace JT808.DotNetty.Tcp.Handlers | |||||
ILoggerFactory loggerFactory, | ILoggerFactory loggerFactory, | ||||
JT808TransmitAddressFilterService jT808TransmitAddressFilterService, | JT808TransmitAddressFilterService jT808TransmitAddressFilterService, | ||||
IJT808SourcePackageDispatcher jT808SourcePackageDispatcher, | IJT808SourcePackageDispatcher jT808SourcePackageDispatcher, | ||||
IJT808UplinkPacket jT808UplinkPacket, | |||||
JT808MsgIdTcpHandlerBase handler, | JT808MsgIdTcpHandlerBase handler, | ||||
JT808AtomicCounterServiceFactory jT808AtomicCounterServiceFactory, | JT808AtomicCounterServiceFactory jT808AtomicCounterServiceFactory, | ||||
JT808TcpSessionManager jT808SessionManager) | JT808TcpSessionManager jT808SessionManager) | ||||
{ | { | ||||
this.jT808TrafficService = jT808TrafficServiceFactory.Create(Core.Enums.JT808ModeType.Tcp); | |||||
this.jT808TrafficService = jT808TrafficServiceFactory.Create(JT808TransportProtocolType.tcp); | |||||
this.jT808TransmitAddressFilterService = jT808TransmitAddressFilterService; | this.jT808TransmitAddressFilterService = jT808TransmitAddressFilterService; | ||||
this.handler = handler; | this.handler = handler; | ||||
this.jT808SessionManager = jT808SessionManager; | this.jT808SessionManager = jT808SessionManager; | ||||
this.jT808SourcePackageDispatcher = jT808SourcePackageDispatcher; | this.jT808SourcePackageDispatcher = jT808SourcePackageDispatcher; | ||||
this.jT808AtomicCounterService = jT808AtomicCounterServiceFactory.Create(Core.Enums.JT808ModeType.Tcp); | |||||
this.jT808UplinkPacket = jT808UplinkPacket; | |||||
this.jT808AtomicCounterService = jT808AtomicCounterServiceFactory.Create(JT808TransportProtocolType.tcp); | |||||
logger = loggerFactory.CreateLogger<JT808TcpServerHandler>(); | logger = loggerFactory.CreateLogger<JT808TcpServerHandler>(); | ||||
unknownLogger = loggerFactory.CreateLogger("tcp_unknown_msgid"); | unknownLogger = loggerFactory.CreateLogger("tcp_unknown_msgid"); | ||||
} | } | ||||
@@ -57,7 +62,8 @@ namespace JT808.DotNetty.Tcp.Handlers | |||||
{ | { | ||||
try | try | ||||
{ | { | ||||
jT808SourcePackageDispatcher?.SendAsync(msg); | |||||
jT808SourcePackageDispatcher.SendAsync(msg); | |||||
jT808UplinkPacket.ProcessorAsync(msg, JT808TransportProtocolType.tcp); | |||||
//解析到头部,然后根据具体的消息Id通过队列去进行消费 | //解析到头部,然后根据具体的消息Id通过队列去进行消费 | ||||
//要是一定要解析到数据体可以在JT808MsgIdHandlerBase类中根据具体的消息, | //要是一定要解析到数据体可以在JT808MsgIdHandlerBase类中根据具体的消息, | ||||
//解析具体的消息体,具体调用JT808Serializer.Deserialize<T> | //解析具体的消息体,具体调用JT808Serializer.Deserialize<T> | ||||
@@ -12,9 +12,9 @@ | |||||
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance> | <PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance> | ||||
<RepositoryUrl>https://github.com/SmallChi/JT808DotNetty</RepositoryUrl> | <RepositoryUrl>https://github.com/SmallChi/JT808DotNetty</RepositoryUrl> | ||||
<PackageProjectUrl>https://github.com/SmallChi/JT808DotNetty</PackageProjectUrl> | <PackageProjectUrl>https://github.com/SmallChi/JT808DotNetty</PackageProjectUrl> | ||||
<PackageLicenseUrl>https://github.com/SmallChi/JT808DotNetty/blob/master/LICENSE</PackageLicenseUrl> | |||||
<license>https://github.com/SmallChi/JT808DotNetty/blob/master/LICENSE</license> | |||||
<GeneratePackageOnBuild>true</GeneratePackageOnBuild> | <GeneratePackageOnBuild>true</GeneratePackageOnBuild> | ||||
<Version>1.1.1</Version> | |||||
<Version>1.2.0</Version> | |||||
</PropertyGroup> | </PropertyGroup> | ||||
<ItemGroup> | <ItemGroup> | ||||
<PackageReference Include="DotNetty.Buffers" Version="0.6.0" /> | <PackageReference Include="DotNetty.Buffers" Version="0.6.0" /> | ||||
@@ -14,13 +14,12 @@ namespace JT808.DotNetty.WebApi.Test | |||||
public JT808DotNettyWebApiTest() | public JT808DotNettyWebApiTest() | ||||
{ | { | ||||
var httpApiConfig = new HttpApiConfig | |||||
HttpApi.Register<IJT808DotNettyWebApi>().ConfigureHttpApiConfig(c => | |||||
{ | { | ||||
HttpHost = new Uri("http://127.0.0.1:12828"+ JT808Constants.JT808WebApiRouteTable.RouteTablePrefix+"/"), | |||||
LoggerFactory = new LoggerFactory(), | |||||
}; | |||||
jT808DotNettyWebApi = HttpApiClient.Create<IJT808DotNettyWebApi>(httpApiConfig); | |||||
c.HttpHost = new Uri("http://127.0.0.1:12828" + JT808Constants.JT808WebApiRouteTable.RouteTablePrefix + "/"); | |||||
c.LoggerFactory = new LoggerFactory(); | |||||
}); | |||||
var api = HttpApi.Resolve<IJT808DotNettyWebApi>(); | |||||
} | } | ||||
[TestMethod] | [TestMethod] | ||||
@@ -11,6 +11,7 @@ using JT808.DotNetty.Core; | |||||
using JT808.DotNetty.Core.Handlers; | using JT808.DotNetty.Core.Handlers; | ||||
using System.Threading.Tasks; | using System.Threading.Tasks; | ||||
using JT808.DotNetty.Core.Interfaces; | using JT808.DotNetty.Core.Interfaces; | ||||
using JT808.DotNetty.Abstractions.Enums; | |||||
namespace JT808.DotNetty.Udp.Handlers | namespace JT808.DotNetty.Udp.Handlers | ||||
{ | { | ||||
@@ -31,33 +32,44 @@ namespace JT808.DotNetty.Udp.Handlers | |||||
private readonly JT808TrafficService jT808TrafficService; | private readonly JT808TrafficService jT808TrafficService; | ||||
private readonly IJT808UplinkPacket jT808UplinkPacket; | |||||
private readonly IJT808DatagramPacket jT808DatagramPacket; | |||||
private readonly ILogger unknownLogger; | |||||
public JT808UdpServerHandler( | public JT808UdpServerHandler( | ||||
IJT808DatagramPacket jT808DatagramPacket, | |||||
JT808TrafficServiceFactory jT808TrafficServiceFactory, | JT808TrafficServiceFactory jT808TrafficServiceFactory, | ||||
ILoggerFactory loggerFactory, | ILoggerFactory loggerFactory, | ||||
IJT808SourcePackageDispatcher jT808SourcePackageDispatcher, | IJT808SourcePackageDispatcher jT808SourcePackageDispatcher, | ||||
IJT808UplinkPacket jT808UplinkPacket, | |||||
JT808MsgIdUdpHandlerBase handler, | JT808MsgIdUdpHandlerBase handler, | ||||
JT808AtomicCounterServiceFactory jT808AtomicCounterServiceFactory, | JT808AtomicCounterServiceFactory jT808AtomicCounterServiceFactory, | ||||
JT808UdpSessionManager jT808UdpSessionManager) | JT808UdpSessionManager jT808UdpSessionManager) | ||||
{ | { | ||||
this.jT808TrafficService = jT808TrafficServiceFactory.Create(Core.Enums.JT808ModeType.Udp); | |||||
this.jT808DatagramPacket = jT808DatagramPacket; | |||||
this.jT808TrafficService = jT808TrafficServiceFactory.Create(JT808TransportProtocolType.udp); | |||||
this.handler = handler; | this.handler = handler; | ||||
this.jT808SourcePackageDispatcher = jT808SourcePackageDispatcher; | this.jT808SourcePackageDispatcher = jT808SourcePackageDispatcher; | ||||
this.jT808AtomicCounterService = jT808AtomicCounterServiceFactory.Create(Core.Enums.JT808ModeType.Udp); | |||||
this.jT808AtomicCounterService = jT808AtomicCounterServiceFactory.Create(JT808TransportProtocolType.udp); | |||||
this.jT808UplinkPacket = jT808UplinkPacket; | |||||
this.jT808UdpSessionManager = jT808UdpSessionManager; | this.jT808UdpSessionManager = jT808UdpSessionManager; | ||||
logger = loggerFactory.CreateLogger<JT808UdpServerHandler>(); | logger = loggerFactory.CreateLogger<JT808UdpServerHandler>(); | ||||
unknownLogger = loggerFactory.CreateLogger("udp_unknown_msgid"); | |||||
} | } | ||||
protected override void ChannelRead0(IChannelHandlerContext ctx, JT808UdpPackage msg) | protected override void ChannelRead0(IChannelHandlerContext ctx, JT808UdpPackage msg) | ||||
{ | { | ||||
try | try | ||||
{ | { | ||||
jT808SourcePackageDispatcher?.SendAsync(msg.Buffer); | |||||
jT808TrafficService.ReceiveSize(msg.Buffer.Length); | |||||
jT808SourcePackageDispatcher.SendAsync(msg.Buffer); | |||||
jT808UplinkPacket.ProcessorAsync(msg.Buffer, JT808TransportProtocolType.udp); | |||||
//解析到头部,然后根据具体的消息Id通过队列去进行消费 | //解析到头部,然后根据具体的消息Id通过队列去进行消费 | ||||
//要是一定要解析到数据体可以在JT808MsgIdHandlerBase类中根据具体的消息, | //要是一定要解析到数据体可以在JT808MsgIdHandlerBase类中根据具体的消息, | ||||
//解析具体的消息体,具体调用JT808Serializer.Deserialize<T> | //解析具体的消息体,具体调用JT808Serializer.Deserialize<T> | ||||
JT808HeaderPackage jT808HeaderPackage = JT808Serializer.Deserialize<JT808HeaderPackage>(msg.Buffer); | JT808HeaderPackage jT808HeaderPackage = JT808Serializer.Deserialize<JT808HeaderPackage>(msg.Buffer); | ||||
jT808AtomicCounterService.MsgSuccessIncrement(); | jT808AtomicCounterService.MsgSuccessIncrement(); | ||||
jT808TrafficService.ReceiveSize(msg.Buffer.Length); | |||||
jT808UdpSessionManager.TryAdd(ctx.Channel, msg.Sender, jT808HeaderPackage.Header.TerminalPhoneNo); | jT808UdpSessionManager.TryAdd(ctx.Channel, msg.Sender, jT808HeaderPackage.Header.TerminalPhoneNo); | ||||
if (logger.IsEnabled(LogLevel.Debug)) | if (logger.IsEnabled(LogLevel.Debug)) | ||||
{ | { | ||||
@@ -69,8 +81,15 @@ namespace JT808.DotNetty.Udp.Handlers | |||||
if (jT808Response != null) | if (jT808Response != null) | ||||
{ | { | ||||
var sendData = JT808Serializer.Serialize(jT808Response.Package, jT808Response.MinBufferSize); | var sendData = JT808Serializer.Serialize(jT808Response.Package, jT808Response.MinBufferSize); | ||||
jT808TrafficService.SendSize(sendData.Length); | |||||
ctx.WriteAndFlushAsync(new DatagramPacket(Unpooled.WrappedBuffer(sendData), msg.Sender)); | |||||
ctx.WriteAndFlushAsync(jT808DatagramPacket.Create(sendData,msg.Sender)); | |||||
} | |||||
} | |||||
else | |||||
{ | |||||
//未知的消息类型已日志形式输出 | |||||
if (unknownLogger.IsEnabled(LogLevel.Debug)) | |||||
{ | |||||
unknownLogger.LogDebug(ByteBufferUtil.HexDump(msg.Buffer)); | |||||
} | } | ||||
} | } | ||||
} | } | ||||
@@ -12,9 +12,9 @@ | |||||
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance> | <PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance> | ||||
<RepositoryUrl>https://github.com/SmallChi/JT808DotNetty</RepositoryUrl> | <RepositoryUrl>https://github.com/SmallChi/JT808DotNetty</RepositoryUrl> | ||||
<PackageProjectUrl>https://github.com/SmallChi/JT808DotNetty</PackageProjectUrl> | <PackageProjectUrl>https://github.com/SmallChi/JT808DotNetty</PackageProjectUrl> | ||||
<PackageLicenseUrl>https://github.com/SmallChi/JT808DotNetty/blob/master/LICENSE</PackageLicenseUrl> | |||||
<license>https://github.com/SmallChi/JT808DotNetty/blob/master/LICENSE</license> | |||||
<GeneratePackageOnBuild>true</GeneratePackageOnBuild> | <GeneratePackageOnBuild>true</GeneratePackageOnBuild> | ||||
<Version>1.1.1</Version> | |||||
<Version>1.2.0</Version> | |||||
</PropertyGroup> | </PropertyGroup> | ||||
<ItemGroup> | <ItemGroup> | ||||
@@ -1,6 +1,8 @@ | |||||
using JT808.DotNetty.Core; | using JT808.DotNetty.Core; | ||||
using JT808.DotNetty.Core.Codecs; | using JT808.DotNetty.Core.Codecs; | ||||
using JT808.DotNetty.Core.Handlers; | using JT808.DotNetty.Core.Handlers; | ||||
using JT808.DotNetty.Core.Impls; | |||||
using JT808.DotNetty.Core.Interfaces; | |||||
using JT808.DotNetty.Core.Jobs; | using JT808.DotNetty.Core.Jobs; | ||||
using JT808.DotNetty.Core.Services; | using JT808.DotNetty.Core.Services; | ||||
using JT808.DotNetty.Udp.Handlers; | using JT808.DotNetty.Udp.Handlers; | ||||
@@ -18,6 +20,7 @@ namespace JT808.DotNetty.Udp | |||||
{ | { | ||||
public static IServiceCollection AddJT808UdpHost(this IServiceCollection serviceDescriptors) | public static IServiceCollection AddJT808UdpHost(this IServiceCollection serviceDescriptors) | ||||
{ | { | ||||
serviceDescriptors.TryAddSingleton<IJT808DatagramPacket, JT808DatagramPacketImpl>(); | |||||
serviceDescriptors.TryAddSingleton<JT808UdpSessionManager>(); | serviceDescriptors.TryAddSingleton<JT808UdpSessionManager>(); | ||||
serviceDescriptors.TryAddSingleton<JT808MsgIdUdpHandlerBase, JT808MsgIdDefaultUdpHandler>(); | serviceDescriptors.TryAddSingleton<JT808MsgIdUdpHandlerBase, JT808MsgIdDefaultUdpHandler>(); | ||||
serviceDescriptors.TryAddScoped<JT808UdpDecoder>(); | serviceDescriptors.TryAddScoped<JT808UdpDecoder>(); | ||||
@@ -1,6 +1,6 @@ | |||||
using JT808.DotNetty.Abstractions; | using JT808.DotNetty.Abstractions; | ||||
using JT808.DotNetty.Abstractions.Dtos; | using JT808.DotNetty.Abstractions.Dtos; | ||||
using JT808.DotNetty.Core.Enums; | |||||
using JT808.DotNetty.Abstractions.Enums; | |||||
using JT808.DotNetty.Core.Handlers; | using JT808.DotNetty.Core.Handlers; | ||||
using JT808.DotNetty.Core.Interfaces; | using JT808.DotNetty.Core.Interfaces; | ||||
using JT808.DotNetty.Core.Metadata; | using JT808.DotNetty.Core.Metadata; | ||||
@@ -48,11 +48,11 @@ namespace JT808.DotNetty.WebApi.Handlers | |||||
) | ) | ||||
{ | { | ||||
this.jT808SimpleSystemCollectService = jT808SimpleSystemCollectService; | this.jT808SimpleSystemCollectService = jT808SimpleSystemCollectService; | ||||
this.jT808TcpTrafficService = jT808TrafficServiceFactory.Create(JT808ModeType.Tcp); | |||||
this.jT808TcpTrafficService = jT808TrafficServiceFactory.Create(JT808TransportProtocolType.tcp); | |||||
this.jT808UnificationTcpSendService = jT808UnificationTcpSendService; | this.jT808UnificationTcpSendService = jT808UnificationTcpSendService; | ||||
this.jT808TcpSessionService = jT808TcpSessionService; | this.jT808TcpSessionService = jT808TcpSessionService; | ||||
this.jT808TransmitAddressFilterService = jT808TransmitAddressFilterService; | this.jT808TransmitAddressFilterService = jT808TransmitAddressFilterService; | ||||
this.jT808TcpAtomicCounterService = jT808AtomicCounterServiceFactory.Create(JT808ModeType.Tcp); | |||||
this.jT808TcpAtomicCounterService = jT808AtomicCounterServiceFactory.Create(JT808TransportProtocolType.tcp); | |||||
InitCommonRoute(); | InitCommonRoute(); | ||||
InitTcpRoute(); | InitTcpRoute(); | ||||
} | } | ||||
@@ -70,10 +70,10 @@ namespace JT808.DotNetty.WebApi.Handlers | |||||
) | ) | ||||
{ | { | ||||
this.jT808SimpleSystemCollectService = jT808SimpleSystemCollectService; | this.jT808SimpleSystemCollectService = jT808SimpleSystemCollectService; | ||||
this.jT808UdpTrafficService = jT808TrafficServiceFactory.Create(JT808ModeType.Udp); | |||||
this.jT808UdpTrafficService = jT808TrafficServiceFactory.Create(JT808TransportProtocolType.udp); | |||||
this.jT808UdpSessionService = jT808UdpSessionService; | this.jT808UdpSessionService = jT808UdpSessionService; | ||||
this.jT808UnificationUdpSendService = jT808UnificationUdpSendService; | this.jT808UnificationUdpSendService = jT808UnificationUdpSendService; | ||||
this.jT808UdpAtomicCounterService = jT808AtomicCounterServiceFactory.Create(JT808ModeType.Udp); | |||||
this.jT808UdpAtomicCounterService = jT808AtomicCounterServiceFactory.Create(JT808TransportProtocolType.udp); | |||||
InitCommonRoute(); | InitCommonRoute(); | ||||
InitUdpRoute(); | InitUdpRoute(); | ||||
} | } | ||||
@@ -95,15 +95,15 @@ namespace JT808.DotNetty.WebApi.Handlers | |||||
) | ) | ||||
{ | { | ||||
this.jT808SimpleSystemCollectService = jT808SimpleSystemCollectService; | this.jT808SimpleSystemCollectService = jT808SimpleSystemCollectService; | ||||
this.jT808TcpTrafficService = jT808TrafficServiceFactory.Create(JT808ModeType.Tcp); | |||||
this.jT808UdpTrafficService = jT808TrafficServiceFactory.Create(JT808ModeType.Udp); | |||||
this.jT808TcpTrafficService = jT808TrafficServiceFactory.Create(JT808TransportProtocolType.tcp); | |||||
this.jT808UdpTrafficService = jT808TrafficServiceFactory.Create(JT808TransportProtocolType.udp); | |||||
this.jT808UdpSessionService = jT808UdpSessionService; | this.jT808UdpSessionService = jT808UdpSessionService; | ||||
this.jT808UnificationTcpSendService = jT808UnificationTcpSendService; | this.jT808UnificationTcpSendService = jT808UnificationTcpSendService; | ||||
this.jT808UnificationUdpSendService = jT808UnificationUdpSendService; | this.jT808UnificationUdpSendService = jT808UnificationUdpSendService; | ||||
this.jT808TcpSessionService = jT808TcpSessionService; | this.jT808TcpSessionService = jT808TcpSessionService; | ||||
this.jT808TransmitAddressFilterService = jT808TransmitAddressFilterService; | this.jT808TransmitAddressFilterService = jT808TransmitAddressFilterService; | ||||
this.jT808TcpAtomicCounterService = jT808AtomicCounterServiceFactory.Create(JT808ModeType.Tcp); | |||||
this.jT808UdpAtomicCounterService = jT808AtomicCounterServiceFactory.Create(JT808ModeType.Udp); | |||||
this.jT808TcpAtomicCounterService = jT808AtomicCounterServiceFactory.Create(JT808TransportProtocolType.tcp); | |||||
this.jT808UdpAtomicCounterService = jT808AtomicCounterServiceFactory.Create(JT808TransportProtocolType.udp); | |||||
InitCommonRoute(); | InitCommonRoute(); | ||||
InitTcpRoute(); | InitTcpRoute(); | ||||
InitUdpRoute(); | InitUdpRoute(); | ||||
@@ -12,9 +12,9 @@ | |||||
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance> | <PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance> | ||||
<RepositoryUrl>https://github.com/SmallChi/JT808DotNetty</RepositoryUrl> | <RepositoryUrl>https://github.com/SmallChi/JT808DotNetty</RepositoryUrl> | ||||
<PackageProjectUrl>https://github.com/SmallChi/JT808DotNetty</PackageProjectUrl> | <PackageProjectUrl>https://github.com/SmallChi/JT808DotNetty</PackageProjectUrl> | ||||
<PackageLicenseUrl>https://github.com/SmallChi/JT808DotNetty/blob/master/LICENSE</PackageLicenseUrl> | |||||
<license>https://github.com/SmallChi/JT808DotNetty/blob/master/LICENSE</license> | |||||
<GeneratePackageOnBuild>true</GeneratePackageOnBuild> | <GeneratePackageOnBuild>true</GeneratePackageOnBuild> | ||||
<Version>1.1.1</Version> | |||||
<Version>1.2.0</Version> | |||||
</PropertyGroup> | </PropertyGroup> | ||||
<ItemGroup> | <ItemGroup> | ||||
<PackageReference Include="DotNetty.Buffers" Version="0.6.0" /> | <PackageReference Include="DotNetty.Buffers" Version="0.6.0" /> | ||||
@@ -12,13 +12,13 @@ | |||||
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance> | <PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance> | ||||
<RepositoryUrl>https://github.com/SmallChi/JT808DotNetty</RepositoryUrl> | <RepositoryUrl>https://github.com/SmallChi/JT808DotNetty</RepositoryUrl> | ||||
<PackageProjectUrl>https://github.com/SmallChi/JT808DotNetty</PackageProjectUrl> | <PackageProjectUrl>https://github.com/SmallChi/JT808DotNetty</PackageProjectUrl> | ||||
<PackageLicenseUrl>https://github.com/SmallChi/JT808DotNetty/blob/master/LICENSE</PackageLicenseUrl> | |||||
<license>https://github.com/SmallChi/JT808DotNetty/blob/master/LICENSE</license> | |||||
<GeneratePackageOnBuild>true</GeneratePackageOnBuild> | <GeneratePackageOnBuild>true</GeneratePackageOnBuild> | ||||
<Version>1.1.1</Version> | |||||
<Version>1.2.0</Version> | |||||
</PropertyGroup> | </PropertyGroup> | ||||
<ItemGroup> | <ItemGroup> | ||||
<PackageReference Include="WebApiClient.JIT" Version="0.3.4" /> | |||||
<PackageReference Include="WebApiClient.JIT" Version="1.0.9" /> | |||||
</ItemGroup> | </ItemGroup> | ||||
<ItemGroup> | <ItemGroup> | ||||
@@ -3,10 +3,6 @@ Microsoft Visual Studio Solution File, Format Version 12.00 | |||||
# Visual Studio Version 16 | # Visual Studio Version 16 | ||||
VisualStudioVersion = 16.0.28922.388 | VisualStudioVersion = 16.0.28922.388 | ||||
MinimumVisualStudioVersion = 10.0.40219.1 | MinimumVisualStudioVersion = 10.0.40219.1 | ||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{B5A80356-5AF6-449F-9D8B-3C1BBB9D2443}" | |||||
EndProject | |||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JT808.Protocol", "JT808.Protocol\src\JT808.Protocol\JT808.Protocol.csproj", "{9FCA2EE9-8253-41AA-A64C-9883413864F9}" | |||||
EndProject | |||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JT808.DotNetty.Udp", "JT808.DotNetty.Udp\JT808.DotNetty.Udp.csproj", "{C960084C-2CF4-4748-AD35-D2384285D6A3}" | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JT808.DotNetty.Udp", "JT808.DotNetty.Udp\JT808.DotNetty.Udp.csproj", "{C960084C-2CF4-4748-AD35-D2384285D6A3}" | ||||
EndProject | EndProject | ||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JT808.DotNetty.Core", "JT808.DotNetty.Core\JT808.DotNetty.Core.csproj", "{67C5DC72-0004-48B3-BB5A-9CB7069B4F02}" | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JT808.DotNetty.Core", "JT808.DotNetty.Core\JT808.DotNetty.Core.csproj", "{67C5DC72-0004-48B3-BB5A-9CB7069B4F02}" | ||||
@@ -45,10 +41,6 @@ Global | |||||
Release|Any CPU = Release|Any CPU | Release|Any CPU = Release|Any CPU | ||||
EndGlobalSection | EndGlobalSection | ||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution | GlobalSection(ProjectConfigurationPlatforms) = postSolution | ||||
{9FCA2EE9-8253-41AA-A64C-9883413864F9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | |||||
{9FCA2EE9-8253-41AA-A64C-9883413864F9}.Debug|Any CPU.Build.0 = Debug|Any CPU | |||||
{9FCA2EE9-8253-41AA-A64C-9883413864F9}.Release|Any CPU.ActiveCfg = Release|Any CPU | |||||
{9FCA2EE9-8253-41AA-A64C-9883413864F9}.Release|Any CPU.Build.0 = Release|Any CPU | |||||
{C960084C-2CF4-4748-AD35-D2384285D6A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | {C960084C-2CF4-4748-AD35-D2384285D6A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||||
{C960084C-2CF4-4748-AD35-D2384285D6A3}.Debug|Any CPU.Build.0 = Debug|Any CPU | {C960084C-2CF4-4748-AD35-D2384285D6A3}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||||
{C960084C-2CF4-4748-AD35-D2384285D6A3}.Release|Any CPU.ActiveCfg = Release|Any CPU | {C960084C-2CF4-4748-AD35-D2384285D6A3}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||||
@@ -110,7 +102,6 @@ Global | |||||
HideSolutionNode = FALSE | HideSolutionNode = FALSE | ||||
EndGlobalSection | EndGlobalSection | ||||
GlobalSection(NestedProjects) = preSolution | GlobalSection(NestedProjects) = preSolution | ||||
{9FCA2EE9-8253-41AA-A64C-9883413864F9} = {B5A80356-5AF6-449F-9D8B-3C1BBB9D2443} | |||||
{1C4CCE9B-761B-4581-B5DA-5B6D83572D56} = {3BD7FF02-8516-4A77-A385-9FDCDD792E22} | {1C4CCE9B-761B-4581-B5DA-5B6D83572D56} = {3BD7FF02-8516-4A77-A385-9FDCDD792E22} | ||||
{AEF1E1E2-C861-4268-86F6-6F376FAF79A7} = {3BD7FF02-8516-4A77-A385-9FDCDD792E22} | {AEF1E1E2-C861-4268-86F6-6F376FAF79A7} = {3BD7FF02-8516-4A77-A385-9FDCDD792E22} | ||||
{E503BFD8-D90A-4610-97C7-5B9A0497303B} = {3BD7FF02-8516-4A77-A385-9FDCDD792E22} | {E503BFD8-D90A-4610-97C7-5B9A0497303B} = {3BD7FF02-8516-4A77-A385-9FDCDD792E22} | ||||
@@ -1 +0,0 @@ | |||||
Subproject commit f0a1c9255c52540af52fdc679f67380b442fce36 |