Pārlūkot izejas kodu

1.删除子模块使用nuget方式引用

2.增加tcp统一出口编码器
3.修改统一的应答接口
4.修改包装udp编码器
5.修改udp端口为808
6.增加上下行数据包日志接口
7.修改webapi返回数据太多导致被截断
tags/v1.2.0
SmallChi pirms 6 gadiem
vecāks
revīzija
320b4d1934
33 mainītis faili ar 246 papildinājumiem un 81 dzēšanām
  1. +0
    -3
      .gitmodules
  2. +2
    -0
      README.md
  3. +15
    -0
      src/JT808.DotNetty.Abstractions/Enums/JT808TransportProtocolType.cs
  4. +22
    -0
      src/JT808.DotNetty.Abstractions/IJT808DownlinkPacket.cs
  5. +19
    -0
      src/JT808.DotNetty.Abstractions/IJT808UplinkPacket.cs
  6. +2
    -2
      src/JT808.DotNetty.Abstractions/JT808.DotNetty.Abstractions.csproj
  7. +3
    -6
      src/JT808.DotNetty.Client/JT808.DotNetty.Client.csproj
  8. +11
    -2
      src/JT808.DotNetty.Core/Codecs/JT808TcpEncoder.cs
  9. +1
    -1
      src/JT808.DotNetty.Core/Configurations/JT808Configuration.cs
  10. +33
    -0
      src/JT808.DotNetty.Core/Impls/JT808DatagramPacketImpl.cs
  11. +17
    -0
      src/JT808.DotNetty.Core/Impls/JT808DownlinkPacketEmptyImpl.cs
  12. +17
    -0
      src/JT808.DotNetty.Core/Impls/JT808UplinkPacketEmptyImpl.cs
  13. +13
    -0
      src/JT808.DotNetty.Core/Interfaces/IJT808DatagramPacket.cs
  14. +3
    -3
      src/JT808.DotNetty.Core/JT808.DotNetty.Core.csproj
  15. +4
    -0
      src/JT808.DotNetty.Core/JT808CoreDotnettyExtensions.cs
  16. +3
    -2
      src/JT808.DotNetty.Core/Jobs/JT808TcpAtomicCouterResetDailyJob.cs
  17. +3
    -2
      src/JT808.DotNetty.Core/Jobs/JT808TcpTrafficResetDailyJob.cs
  18. +3
    -2
      src/JT808.DotNetty.Core/Jobs/JT808UdpAtomicCouterResetDailyJob.cs
  19. +3
    -2
      src/JT808.DotNetty.Core/Jobs/JT808UdpTrafficResetDailyJob.cs
  20. +4
    -4
      src/JT808.DotNetty.Core/Services/JT808AtomicCounterServiceFactory.cs
  21. +4
    -4
      src/JT808.DotNetty.Core/Services/JT808TrafficServiceFactory.cs
  22. +4
    -5
      src/JT808.DotNetty.Core/Services/JT808UnificationUdpSendService.cs
  23. +9
    -3
      src/JT808.DotNetty.Tcp/Handlers/JT808TcpServerHandler.cs
  24. +2
    -2
      src/JT808.DotNetty.Tcp/JT808.DotNetty.Tcp.csproj
  25. +5
    -6
      src/JT808.DotNetty.Tests/JT808.DotNetty.WebApi.Test/JT808DotNettyWebApiTest.cs
  26. +25
    -6
      src/JT808.DotNetty.Udp/Handlers/JT808UdpServerHandler.cs
  27. +2
    -2
      src/JT808.DotNetty.Udp/JT808.DotNetty.Udp.csproj
  28. +3
    -0
      src/JT808.DotNetty.Udp/JT808UdpDotnettyExtensions.cs
  29. +9
    -9
      src/JT808.DotNetty.WebApi/Handlers/JT808MsgIdDefaultWebApiHandler.cs
  30. +2
    -2
      src/JT808.DotNetty.WebApi/JT808.DotNetty.WebApi.csproj
  31. +3
    -3
      src/JT808.DotNetty.WebApiClientTool/JT808.DotNetty.WebApiClientTool.csproj
  32. +0
    -9
      src/JT808.DotNetty.sln
  33. +0
    -1
      src/JT808.Protocol

+ 0
- 3
.gitmodules Parādīt failu

@@ -1,3 +0,0 @@
[submodule "src/JT808.Protocol"]
path = src/JT808.Protocol
url = https://github.com/SmallChi/JT808.git

+ 2
- 0
README.md Parādīt failu

@@ -43,6 +43,8 @@
|:------:|:------|:------|
| IJT808SessionPublishing| 会话通知(在线/离线)| 有些超长待机的设备,不会实时保持连接,那么通过平台下发的命令是无法到达的,这时候就需要设备一上线,就即时通知服务去处理,然后在即时的下发消息到设备。|
| IJT808SourcePackageDispatcher| 原包分发器| 需要将源数据转给其他平台|
| IJT808UplinkPacket| 上行数据包处理接口| 平台需要查看网关的上行数据日志(可以配合InfluxDB使用)|
| IJT808DownlinkPacket| 下行数据包处理接口| 平台需要查看网关的下行数据日志(可以配合InfluxDB使用)|

> 只要实现IJT808SessionPublishing接口的任意一款MQ都能实现该功能。



+ 15
- 0
src/JT808.DotNetty.Abstractions/Enums/JT808TransportProtocolType.cs Parādīt failu

@@ -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
}
}

+ 22
- 0
src/JT808.DotNetty.Abstractions/IJT808DownlinkPacket.cs Parādīt failu

@@ -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);
}
}

+ 19
- 0
src/JT808.DotNetty.Abstractions/IJT808UplinkPacket.cs Parādīt failu

@@ -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);
}
}

+ 2
- 2
src/JT808.DotNetty.Abstractions/JT808.DotNetty.Abstractions.csproj Parādīt failu

@@ -12,9 +12,9 @@
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
<RepositoryUrl>https://github.com/SmallChi/JT808DotNetty</RepositoryUrl>
<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>
<Version>1.1.1</Version>
<Version>1.2.0</Version>
</PropertyGroup>

</Project>

+ 3
- 6
src/JT808.DotNetty.Client/JT808.DotNetty.Client.csproj Parādīt failu

@@ -12,23 +12,20 @@
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
<RepositoryUrl>https://github.com/SmallChi/JT808DotNetty</RepositoryUrl>
<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>
<Version>1.1.1</Version>
<Version>1.2.0</Version>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="DotNetty.Handlers" Version="0.6.0" />
<PackageReference Include="DotNetty.Transport.Libuv" 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.Options.ConfigurationExtensions" Version="2.2.0" />
<PackageReference Include="Newtonsoft.Json" Version="12.0.1" />
<PackageReference Include="Microsoft.Extensions.Options" Version="2.2.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\JT808.Protocol\src\JT808.Protocol\JT808.Protocol.csproj" />
</ItemGroup>

</Project>

+ 11
- 2
src/JT808.DotNetty.Core/Codecs/JT808TcpEncoder.cs Parādīt failu

@@ -5,6 +5,8 @@ using DotNetty.Transport.Channels;
using JT808.DotNetty.Core.Interfaces;
using Microsoft.Extensions.Logging;
using JT808.DotNetty.Core.Services;
using JT808.DotNetty.Abstractions;
using JT808.DotNetty.Abstractions.Enums;

namespace JT808.DotNetty.Core.Codecs
{
@@ -17,10 +19,15 @@ namespace JT808.DotNetty.Core.Codecs

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>();
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)
@@ -31,6 +38,7 @@ namespace JT808.DotNetty.Core.Codecs
{
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)
@@ -45,6 +53,7 @@ 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));
}
}


+ 1
- 1
src/JT808.DotNetty.Core/Configurations/JT808Configuration.cs Parādīt failu

@@ -8,7 +8,7 @@ namespace JT808.DotNetty.Core.Configurations
{
public int TcpPort { get; set; } = 808;

public int UdpPort { get; set; } = 818;
public int UdpPort { get; set; } = 808;

public int QuietPeriodSeconds { get; set; } = 1;



+ 33
- 0
src/JT808.DotNetty.Core/Impls/JT808DatagramPacketImpl.cs Parādīt failu

@@ -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);
}
}
}

+ 17
- 0
src/JT808.DotNetty.Core/Impls/JT808DownlinkPacketEmptyImpl.cs Parādīt failu

@@ -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;
}
}
}

+ 17
- 0
src/JT808.DotNetty.Core/Impls/JT808UplinkPacketEmptyImpl.cs Parādīt failu

@@ -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;
}
}
}

+ 13
- 0
src/JT808.DotNetty.Core/Interfaces/IJT808DatagramPacket.cs Parādīt failu

@@ -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);
}
}

+ 3
- 3
src/JT808.DotNetty.Core/JT808.DotNetty.Core.csproj Parādīt failu

@@ -12,9 +12,9 @@
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
<RepositoryUrl>https://github.com/SmallChi/JT808DotNetty</RepositoryUrl>
<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>
<Version>1.1.1</Version>
<Version>1.2.0</Version>
</PropertyGroup>

<ItemGroup>
@@ -25,6 +25,7 @@
<PackageReference Include="DotNetty.Handlers" Version="0.6.0" />
<PackageReference Include="DotNetty.Transport.Libuv" 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.Options.ConfigurationExtensions" Version="2.2.0" />
<PackageReference Include="Newtonsoft.Json" Version="12.0.2" />
@@ -33,7 +34,6 @@

<ItemGroup>
<ProjectReference Include="..\JT808.DotNetty.Abstractions\JT808.DotNetty.Abstractions.csproj" />
<ProjectReference Include="..\JT808.Protocol\src\JT808.Protocol\JT808.Protocol.csproj" />
</ItemGroup>

</Project>

+ 4
- 0
src/JT808.DotNetty.Core/JT808CoreDotnettyExtensions.cs Parādīt failu

@@ -55,6 +55,8 @@ namespace JT808.DotNetty.Core
}
serviceDescriptors.Configure<JT808Configuration>(configuration.GetSection("JT808Configuration"));
serviceDescriptors.TryAddSingleton<IJT808SessionPublishing, JT808SessionPublishingEmptyImpl>();
serviceDescriptors.TryAddSingleton<IJT808DownlinkPacket, JT808DownlinkPacketEmptyImpl>();
serviceDescriptors.TryAddSingleton<IJT808UplinkPacket, JT808UplinkPacketEmptyImpl>();
serviceDescriptors.TryAddSingleton<IJT808SourcePackageDispatcher, JT808SourcePackageDispatcherEmptyImpl>();
serviceDescriptors.TryAddSingleton<JT808AtomicCounterServiceFactory>();
serviceDescriptors.TryAddSingleton<JT808TrafficServiceFactory>();
@@ -80,6 +82,8 @@ namespace JT808.DotNetty.Core
}
serviceDescriptors.Configure(jt808Options);
serviceDescriptors.TryAddSingleton<IJT808SessionPublishing, JT808SessionPublishingEmptyImpl>();
serviceDescriptors.TryAddSingleton<IJT808DownlinkPacket, JT808DownlinkPacketEmptyImpl>();
serviceDescriptors.TryAddSingleton<IJT808UplinkPacket, JT808UplinkPacketEmptyImpl>();
serviceDescriptors.TryAddSingleton<IJT808SourcePackageDispatcher, JT808SourcePackageDispatcherEmptyImpl>();
serviceDescriptors.TryAddSingleton<JT808AtomicCounterServiceFactory>();
serviceDescriptors.TryAddSingleton<JT808TrafficServiceFactory>();


+ 3
- 2
src/JT808.DotNetty.Core/Jobs/JT808TcpAtomicCouterResetDailyJob.cs Parādīt failu

@@ -1,4 +1,5 @@
using JT808.DotNetty.Core.Services;
using JT808.DotNetty.Abstractions.Enums;
using JT808.DotNetty.Core.Services;
using Microsoft.Extensions.Logging;
using System.Threading;
using System.Threading.Tasks;
@@ -15,7 +16,7 @@ namespace JT808.DotNetty.Core.Jobs
JT808AtomicCounterServiceFactory jT808AtomicCounterServiceFactory,
ILoggerFactory loggerFactory)
{
_jT808AtomicCounterService = jT808AtomicCounterServiceFactory.Create(Enums.JT808ModeType.Tcp);
_jT808AtomicCounterService = jT808AtomicCounterServiceFactory.Create(JT808TransportProtocolType.tcp);
_logger =loggerFactory.CreateLogger<JT808TcpAtomicCouterResetDailyJob>();
}



+ 3
- 2
src/JT808.DotNetty.Core/Jobs/JT808TcpTrafficResetDailyJob.cs Parādīt failu

@@ -1,4 +1,5 @@
using JT808.DotNetty.Core.Services;
using JT808.DotNetty.Abstractions.Enums;
using JT808.DotNetty.Core.Services;
using Microsoft.Extensions.Logging;
using System.Threading;
using System.Threading.Tasks;
@@ -15,7 +16,7 @@ namespace JT808.DotNetty.Core.Jobs
JT808TrafficServiceFactory jT808TrafficServiceFactory,
ILoggerFactory loggerFactory)
{
_jT808TrafficService = jT808TrafficServiceFactory.Create( Enums.JT808ModeType.Tcp);
_jT808TrafficService = jT808TrafficServiceFactory.Create(JT808TransportProtocolType.tcp);
_logger =loggerFactory.CreateLogger<JT808TcpTrafficResetDailyJob>();
}



+ 3
- 2
src/JT808.DotNetty.Core/Jobs/JT808UdpAtomicCouterResetDailyJob.cs Parādīt failu

@@ -1,4 +1,5 @@
using JT808.DotNetty.Core.Services;
using JT808.DotNetty.Abstractions.Enums;
using JT808.DotNetty.Core.Services;
using Microsoft.Extensions.Logging;
using System.Threading;
using System.Threading.Tasks;
@@ -15,7 +16,7 @@ namespace JT808.DotNetty.Core.Jobs
JT808AtomicCounterServiceFactory jT808AtomicCounterServiceFactory,
ILoggerFactory loggerFactory)
{
_jT808AtomicCounterService = jT808AtomicCounterServiceFactory.Create(Enums.JT808ModeType.Udp);
_jT808AtomicCounterService = jT808AtomicCounterServiceFactory.Create(JT808TransportProtocolType.udp);
_logger =loggerFactory.CreateLogger<JT808UdpAtomicCouterResetDailyJob>();
}



+ 3
- 2
src/JT808.DotNetty.Core/Jobs/JT808UdpTrafficResetDailyJob.cs Parādīt failu

@@ -1,4 +1,5 @@
using JT808.DotNetty.Core.Services;
using JT808.DotNetty.Abstractions.Enums;
using JT808.DotNetty.Core.Services;
using Microsoft.Extensions.Logging;
using System.Threading;
using System.Threading.Tasks;
@@ -15,7 +16,7 @@ namespace JT808.DotNetty.Core.Jobs
JT808TrafficServiceFactory jT808TrafficServiceFactory,
ILoggerFactory loggerFactory)
{
_jT808TrafficService = jT808TrafficServiceFactory.Create(Enums.JT808ModeType.Udp);
_jT808TrafficService = jT808TrafficServiceFactory.Create(JT808TransportProtocolType.udp);
_logger =loggerFactory.CreateLogger<JT808UdpTrafficResetDailyJob>();
}



+ 4
- 4
src/JT808.DotNetty.Core/Services/JT808AtomicCounterServiceFactory.cs Parādīt failu

@@ -1,4 +1,4 @@
using JT808.DotNetty.Core.Enums;
using JT808.DotNetty.Abstractions.Enums;
using System;
using System.Collections.Concurrent;

@@ -6,14 +6,14 @@ namespace JT808.DotNetty.Core.Services
{
public class JT808AtomicCounterServiceFactory
{
private readonly ConcurrentDictionary<JT808ModeType, JT808AtomicCounterService> cache;
private readonly ConcurrentDictionary<JT808TransportProtocolType, JT808AtomicCounterService> cache;

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))
{


+ 4
- 4
src/JT808.DotNetty.Core/Services/JT808TrafficServiceFactory.cs Parādīt failu

@@ -1,4 +1,4 @@
using JT808.DotNetty.Core.Enums;
using JT808.DotNetty.Abstractions.Enums;
using JT808.DotNetty.Core.Metadata;
using System;
using System.Collections.Concurrent;
@@ -9,14 +9,14 @@ namespace JT808.DotNetty.Core.Services
{
public class JT808TrafficServiceFactory
{
private readonly ConcurrentDictionary<JT808ModeType, JT808TrafficService> cache;
private readonly ConcurrentDictionary<JT808TransportProtocolType, JT808TrafficService> cache;

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))
{


+ 4
- 5
src/JT808.DotNetty.Core/Services/JT808UnificationUdpSendService.cs Parādīt failu

@@ -12,13 +12,13 @@ namespace JT808.DotNetty.Internal
{
private readonly JT808UdpSessionManager jT808SessionManager;

private readonly JT808TrafficService jT808TrafficService;
private readonly IJT808DatagramPacket jT808DatagramPacket;

public JT808UnificationUdpSendService(
JT808TrafficServiceFactory jT808TrafficServiceFactory,
IJT808DatagramPacket jT808DatagramPacket,
JT808UdpSessionManager jT808SessionManager)
{
this.jT808TrafficService = jT808TrafficServiceFactory.Create(Core.Enums.JT808ModeType.Udp);
this.jT808DatagramPacket = jT808DatagramPacket;
this.jT808SessionManager = jT808SessionManager;
}

@@ -30,8 +30,7 @@ namespace JT808.DotNetty.Internal
var session = jT808SessionManager.GetSession(terminalPhoneNo);
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.Data = true;
}


+ 9
- 3
src/JT808.DotNetty.Tcp/Handlers/JT808TcpServerHandler.cs Parādīt failu

@@ -9,6 +9,7 @@ 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;

namespace JT808.DotNetty.Tcp.Handlers
{
@@ -29,6 +30,8 @@ namespace JT808.DotNetty.Tcp.Handlers

private readonly JT808TrafficService jT808TrafficService;

private readonly IJT808UplinkPacket jT808UplinkPacket;

private readonly ILogger<JT808TcpServerHandler> logger;

private readonly ILogger unknownLogger;
@@ -38,16 +41,18 @@ namespace JT808.DotNetty.Tcp.Handlers
ILoggerFactory loggerFactory,
JT808TransmitAddressFilterService jT808TransmitAddressFilterService,
IJT808SourcePackageDispatcher jT808SourcePackageDispatcher,
IJT808UplinkPacket jT808UplinkPacket,
JT808MsgIdTcpHandlerBase handler,
JT808AtomicCounterServiceFactory jT808AtomicCounterServiceFactory,
JT808TcpSessionManager jT808SessionManager)
{
this.jT808TrafficService = jT808TrafficServiceFactory.Create(Core.Enums.JT808ModeType.Tcp);
this.jT808TrafficService = jT808TrafficServiceFactory.Create(JT808TransportProtocolType.tcp);
this.jT808TransmitAddressFilterService = jT808TransmitAddressFilterService;
this.handler = handler;
this.jT808SessionManager = jT808SessionManager;
this.jT808SourcePackageDispatcher = jT808SourcePackageDispatcher;
this.jT808AtomicCounterService = jT808AtomicCounterServiceFactory.Create(Core.Enums.JT808ModeType.Tcp);
this.jT808UplinkPacket = jT808UplinkPacket;
this.jT808AtomicCounterService = jT808AtomicCounterServiceFactory.Create(JT808TransportProtocolType.tcp);
logger = loggerFactory.CreateLogger<JT808TcpServerHandler>();
unknownLogger = loggerFactory.CreateLogger("tcp_unknown_msgid");
}
@@ -57,7 +62,8 @@ namespace JT808.DotNetty.Tcp.Handlers
{
try
{
jT808SourcePackageDispatcher?.SendAsync(msg);
jT808SourcePackageDispatcher.SendAsync(msg);
jT808UplinkPacket.ProcessorAsync(msg, JT808TransportProtocolType.tcp);
//解析到头部,然后根据具体的消息Id通过队列去进行消费
//要是一定要解析到数据体可以在JT808MsgIdHandlerBase类中根据具体的消息,
//解析具体的消息体,具体调用JT808Serializer.Deserialize<T>


+ 2
- 2
src/JT808.DotNetty.Tcp/JT808.DotNetty.Tcp.csproj Parādīt failu

@@ -12,9 +12,9 @@
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
<RepositoryUrl>https://github.com/SmallChi/JT808DotNetty</RepositoryUrl>
<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>
<Version>1.1.1</Version>
<Version>1.2.0</Version>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="DotNetty.Buffers" Version="0.6.0" />


+ 5
- 6
src/JT808.DotNetty.Tests/JT808.DotNetty.WebApi.Test/JT808DotNettyWebApiTest.cs Parādīt failu

@@ -14,13 +14,12 @@ namespace JT808.DotNetty.WebApi.Test

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]


+ 25
- 6
src/JT808.DotNetty.Udp/Handlers/JT808UdpServerHandler.cs Parādīt failu

@@ -11,6 +11,7 @@ using JT808.DotNetty.Core;
using JT808.DotNetty.Core.Handlers;
using System.Threading.Tasks;
using JT808.DotNetty.Core.Interfaces;
using JT808.DotNetty.Abstractions.Enums;

namespace JT808.DotNetty.Udp.Handlers
{
@@ -31,33 +32,44 @@ namespace JT808.DotNetty.Udp.Handlers

private readonly JT808TrafficService jT808TrafficService;

private readonly IJT808UplinkPacket jT808UplinkPacket;

private readonly IJT808DatagramPacket jT808DatagramPacket;

private readonly ILogger unknownLogger;
public JT808UdpServerHandler(
IJT808DatagramPacket jT808DatagramPacket,
JT808TrafficServiceFactory jT808TrafficServiceFactory,
ILoggerFactory loggerFactory,
IJT808SourcePackageDispatcher jT808SourcePackageDispatcher,
IJT808UplinkPacket jT808UplinkPacket,
JT808MsgIdUdpHandlerBase handler,
JT808AtomicCounterServiceFactory jT808AtomicCounterServiceFactory,
JT808UdpSessionManager jT808UdpSessionManager)
{
this.jT808TrafficService = jT808TrafficServiceFactory.Create(Core.Enums.JT808ModeType.Udp);
this.jT808DatagramPacket = jT808DatagramPacket;
this.jT808TrafficService = jT808TrafficServiceFactory.Create(JT808TransportProtocolType.udp);
this.handler = handler;
this.jT808SourcePackageDispatcher = jT808SourcePackageDispatcher;
this.jT808AtomicCounterService = jT808AtomicCounterServiceFactory.Create(Core.Enums.JT808ModeType.Udp);
this.jT808AtomicCounterService = jT808AtomicCounterServiceFactory.Create(JT808TransportProtocolType.udp);
this.jT808UplinkPacket = jT808UplinkPacket;
this.jT808UdpSessionManager = jT808UdpSessionManager;
logger = loggerFactory.CreateLogger<JT808UdpServerHandler>();
unknownLogger = loggerFactory.CreateLogger("udp_unknown_msgid");
}

protected override void ChannelRead0(IChannelHandlerContext ctx, JT808UdpPackage msg)
{
try
{
jT808SourcePackageDispatcher?.SendAsync(msg.Buffer);
jT808TrafficService.ReceiveSize(msg.Buffer.Length);
jT808SourcePackageDispatcher.SendAsync(msg.Buffer);
jT808UplinkPacket.ProcessorAsync(msg.Buffer, JT808TransportProtocolType.udp);
//解析到头部,然后根据具体的消息Id通过队列去进行消费
//要是一定要解析到数据体可以在JT808MsgIdHandlerBase类中根据具体的消息,
//解析具体的消息体,具体调用JT808Serializer.Deserialize<T>
JT808HeaderPackage jT808HeaderPackage = JT808Serializer.Deserialize<JT808HeaderPackage>(msg.Buffer);
jT808AtomicCounterService.MsgSuccessIncrement();
jT808TrafficService.ReceiveSize(msg.Buffer.Length);
jT808UdpSessionManager.TryAdd(ctx.Channel, msg.Sender, jT808HeaderPackage.Header.TerminalPhoneNo);
if (logger.IsEnabled(LogLevel.Debug))
{
@@ -69,8 +81,15 @@ namespace JT808.DotNetty.Udp.Handlers
if (jT808Response != null)
{
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));
}
}
}


+ 2
- 2
src/JT808.DotNetty.Udp/JT808.DotNetty.Udp.csproj Parādīt failu

@@ -12,9 +12,9 @@
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
<RepositoryUrl>https://github.com/SmallChi/JT808DotNetty</RepositoryUrl>
<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>
<Version>1.1.1</Version>
<Version>1.2.0</Version>
</PropertyGroup>

<ItemGroup>


+ 3
- 0
src/JT808.DotNetty.Udp/JT808UdpDotnettyExtensions.cs Parādīt failu

@@ -1,6 +1,8 @@
using JT808.DotNetty.Core;
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.Udp.Handlers;
@@ -18,6 +20,7 @@ namespace JT808.DotNetty.Udp
{
public static IServiceCollection AddJT808UdpHost(this IServiceCollection serviceDescriptors)
{
serviceDescriptors.TryAddSingleton<IJT808DatagramPacket, JT808DatagramPacketImpl>();
serviceDescriptors.TryAddSingleton<JT808UdpSessionManager>();
serviceDescriptors.TryAddSingleton<JT808MsgIdUdpHandlerBase, JT808MsgIdDefaultUdpHandler>();
serviceDescriptors.TryAddScoped<JT808UdpDecoder>();


+ 9
- 9
src/JT808.DotNetty.WebApi/Handlers/JT808MsgIdDefaultWebApiHandler.cs Parādīt failu

@@ -1,6 +1,6 @@
using JT808.DotNetty.Abstractions;
using JT808.DotNetty.Abstractions.Dtos;
using JT808.DotNetty.Core.Enums;
using JT808.DotNetty.Abstractions.Enums;
using JT808.DotNetty.Core.Handlers;
using JT808.DotNetty.Core.Interfaces;
using JT808.DotNetty.Core.Metadata;
@@ -48,11 +48,11 @@ namespace JT808.DotNetty.WebApi.Handlers
)
{
this.jT808SimpleSystemCollectService = jT808SimpleSystemCollectService;
this.jT808TcpTrafficService = jT808TrafficServiceFactory.Create(JT808ModeType.Tcp);
this.jT808TcpTrafficService = jT808TrafficServiceFactory.Create(JT808TransportProtocolType.tcp);
this.jT808UnificationTcpSendService = jT808UnificationTcpSendService;
this.jT808TcpSessionService = jT808TcpSessionService;
this.jT808TransmitAddressFilterService = jT808TransmitAddressFilterService;
this.jT808TcpAtomicCounterService = jT808AtomicCounterServiceFactory.Create(JT808ModeType.Tcp);
this.jT808TcpAtomicCounterService = jT808AtomicCounterServiceFactory.Create(JT808TransportProtocolType.tcp);
InitCommonRoute();
InitTcpRoute();
}
@@ -70,10 +70,10 @@ namespace JT808.DotNetty.WebApi.Handlers
)
{
this.jT808SimpleSystemCollectService = jT808SimpleSystemCollectService;
this.jT808UdpTrafficService = jT808TrafficServiceFactory.Create(JT808ModeType.Udp);
this.jT808UdpTrafficService = jT808TrafficServiceFactory.Create(JT808TransportProtocolType.udp);
this.jT808UdpSessionService = jT808UdpSessionService;
this.jT808UnificationUdpSendService = jT808UnificationUdpSendService;
this.jT808UdpAtomicCounterService = jT808AtomicCounterServiceFactory.Create(JT808ModeType.Udp);
this.jT808UdpAtomicCounterService = jT808AtomicCounterServiceFactory.Create(JT808TransportProtocolType.udp);
InitCommonRoute();
InitUdpRoute();
}
@@ -95,15 +95,15 @@ namespace JT808.DotNetty.WebApi.Handlers
)
{
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.jT808UnificationTcpSendService = jT808UnificationTcpSendService;
this.jT808UnificationUdpSendService = jT808UnificationUdpSendService;
this.jT808TcpSessionService = jT808TcpSessionService;
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();
InitTcpRoute();
InitUdpRoute();


+ 2
- 2
src/JT808.DotNetty.WebApi/JT808.DotNetty.WebApi.csproj Parādīt failu

@@ -12,9 +12,9 @@
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
<RepositoryUrl>https://github.com/SmallChi/JT808DotNetty</RepositoryUrl>
<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>
<Version>1.1.1</Version>
<Version>1.2.0</Version>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="DotNetty.Buffers" Version="0.6.0" />


+ 3
- 3
src/JT808.DotNetty.WebApiClientTool/JT808.DotNetty.WebApiClientTool.csproj Parādīt failu

@@ -12,13 +12,13 @@
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
<RepositoryUrl>https://github.com/SmallChi/JT808DotNetty</RepositoryUrl>
<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>
<Version>1.1.1</Version>
<Version>1.2.0</Version>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="WebApiClient.JIT" Version="0.3.4" />
<PackageReference Include="WebApiClient.JIT" Version="1.0.9" />
</ItemGroup>

<ItemGroup>


+ 0
- 9
src/JT808.DotNetty.sln Parādīt failu

@@ -3,10 +3,6 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.28922.388
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}"
EndProject
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
EndGlobalSection
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.Build.0 = Debug|Any CPU
{C960084C-2CF4-4748-AD35-D2384285D6A3}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -110,7 +102,6 @@ Global
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{9FCA2EE9-8253-41AA-A64C-9883413864F9} = {B5A80356-5AF6-449F-9D8B-3C1BBB9D2443}
{1C4CCE9B-761B-4581-B5DA-5B6D83572D56} = {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}


+ 0
- 1
src/JT808.Protocol

@@ -1 +0,0 @@
Subproject commit f0a1c9255c52540af52fdc679f67380b442fce36

Notiek ielāde…
Atcelt
Saglabāt