From ff3b80fcd420ff91d42c420ece915c78eb2c0012 Mon Sep 17 00:00:00 2001
From: SmallChi <564952747@qq.com>
Date: Thu, 27 Dec 2018 22:04:22 +0800
Subject: [PATCH] =?UTF-8?q?1.=E6=95=B4=E5=90=88808=E8=A7=A3=E7=A0=81?=
=?UTF-8?q?=E5=99=A8=202.=E5=A2=9E=E5=8A=A0=E5=9F=BA=E4=BA=8Etcp=E5=92=8Cu?=
=?UTF-8?q?dp=E7=9A=84=E4=BC=9A=E8=AF=9D=E5=8F=8A=E4=B8=8B=E5=8F=91?=
=?UTF-8?q?=E6=B5=8B=E8=AF=95=E7=94=A8=E4=BE=8B=203.=E5=B0=86webapi?=
=?UTF-8?q?=E7=9A=84url=E6=8E=A5=E5=8F=A3=E7=A7=BB=E5=85=A5=E5=85=AC?=
=?UTF-8?q?=E5=85=B1=E7=B1=BB=E4=B8=AD=E4=BE=BF=E4=BA=8E=E5=AE=A2=E6=88=B7?=
=?UTF-8?q?=E7=AB=AF=E8=B0=83=E7=94=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../JT808Constants.cs | 54 +++++++++
.../Codecs/JT808TcpDecoder.cs | 20 ++++
.../Codecs/JT808UdpDecoder.cs | 20 ++++
.../Handlers/JT808MsgIdHttpHandlerBase.cs | 3 +-
.../JT808.DotNetty.Core.csproj | 2 +
.../JT808CoreDotnettyExtensions.cs | 6 +-
.../JT808SimpleTcpClient.cs | 41 +++++++
.../JT808SimpleUdpClient.cs | 38 +++++++
.../Session/JT808UdpSessionManager.cs | 29 +----
.../JT808.DotNetty.Tcp.csproj | 1 -
.../JT808TcpDotnettyExtensions.cs | 4 +-
src/JT808.DotNetty.Tcp/JT808TcpServerHost.cs | 2 +-
src/JT808.DotNetty.Test/TestBase.cs | 2 +-
.../JT808.DotNetty.Core.Test.csproj | 28 +++++
.../JT808DefaultChannelId.cs | 36 ++++++
.../JT808TcpSessionManagerTest.cs | 87 +++++++++++++++
.../JT808TransmitAddressFilterServiceTest.cs | 104 ++++++++++++++++++
.../SeedTcpSession.cs | 37 +++++++
.../JT808.DotNetty.Core.Test/TestBase.cs | 35 ++++++
.../JT808.DotNetty.Tcp.Test.csproj | 28 +++++
.../JT808SessionServiceTest.cs | 81 ++++++++++++++
.../JT808UnificationTcpSendServiceTest.cs | 76 +++++++++++++
.../JT808.DotNetty.Tcp.Test/TestBase.cs | 37 +++++++
.../JT808.DotNetty.Udp.Test.csproj | 34 ++++++
.../JT808SessionServiceTest.cs | 79 +++++++++++++
.../JT808UnificationUdpSendServiceTest.cs | 77 +++++++++++++
.../JT808.DotNetty.Udp.Test/TestBase.cs | 37 +++++++
.../JT808.DotNetty.WebApi.Test.csproj | 30 +++++
.../JT808.DotNetty.WebApi.Test/TestBase.cs | 41 +++++++
.../Handlers/JT808UdpServerHandler.cs | 6 +-
.../JT808.DotNetty.Udp.csproj | 1 -
.../JT808UdpDotnettyExtensions.cs | 12 +-
src/JT808.DotNetty.Udp/JT808UdpServerHost.cs | 6 +-
.../JT808MsgIdDefaultWebApiHandler.cs | 29 +++--
.../JT808WebApiDotnettyExtensions.cs | 2 +-
src/JT808.DotNetty.sln | 52 +++++++--
36 files changed, 1101 insertions(+), 76 deletions(-)
create mode 100644 src/JT808.DotNetty.Core/Codecs/JT808TcpDecoder.cs
create mode 100644 src/JT808.DotNetty.Core/Codecs/JT808UdpDecoder.cs
create mode 100644 src/JT808.DotNetty.Core/JT808SimpleTcpClient.cs
create mode 100644 src/JT808.DotNetty.Core/JT808SimpleUdpClient.cs
create mode 100644 src/JT808.DotNetty.Tests/JT808.DotNetty.Core.Test/JT808.DotNetty.Core.Test.csproj
create mode 100644 src/JT808.DotNetty.Tests/JT808.DotNetty.Core.Test/JT808DefaultChannelId.cs
create mode 100644 src/JT808.DotNetty.Tests/JT808.DotNetty.Core.Test/JT808TcpSessionManagerTest.cs
create mode 100644 src/JT808.DotNetty.Tests/JT808.DotNetty.Core.Test/JT808TransmitAddressFilterServiceTest.cs
create mode 100644 src/JT808.DotNetty.Tests/JT808.DotNetty.Core.Test/SeedTcpSession.cs
create mode 100644 src/JT808.DotNetty.Tests/JT808.DotNetty.Core.Test/TestBase.cs
create mode 100644 src/JT808.DotNetty.Tests/JT808.DotNetty.Tcp.Test/JT808.DotNetty.Tcp.Test.csproj
create mode 100644 src/JT808.DotNetty.Tests/JT808.DotNetty.Tcp.Test/JT808SessionServiceTest.cs
create mode 100644 src/JT808.DotNetty.Tests/JT808.DotNetty.Tcp.Test/JT808UnificationTcpSendServiceTest.cs
create mode 100644 src/JT808.DotNetty.Tests/JT808.DotNetty.Tcp.Test/TestBase.cs
create mode 100644 src/JT808.DotNetty.Tests/JT808.DotNetty.Udp.Test/JT808.DotNetty.Udp.Test.csproj
create mode 100644 src/JT808.DotNetty.Tests/JT808.DotNetty.Udp.Test/JT808SessionServiceTest.cs
create mode 100644 src/JT808.DotNetty.Tests/JT808.DotNetty.Udp.Test/JT808UnificationUdpSendServiceTest.cs
create mode 100644 src/JT808.DotNetty.Tests/JT808.DotNetty.Udp.Test/TestBase.cs
create mode 100644 src/JT808.DotNetty.Tests/JT808.DotNetty.WebApi.Test/JT808.DotNetty.WebApi.Test.csproj
create mode 100644 src/JT808.DotNetty.Tests/JT808.DotNetty.WebApi.Test/TestBase.cs
diff --git a/src/JT808.DotNetty.Abstractions/JT808Constants.cs b/src/JT808.DotNetty.Abstractions/JT808Constants.cs
index 4f591d5..ea9a959 100644
--- a/src/JT808.DotNetty.Abstractions/JT808Constants.cs
+++ b/src/JT808.DotNetty.Abstractions/JT808Constants.cs
@@ -5,5 +5,59 @@
public const string SessionOnline= "JT808SessionOnline";
public const string SessionOffline = "JT808SessionOffline";
+
+ public static class JT808WebApiRouteTable
+ {
+ public const string RouteTablePrefix = "/jt808api";
+
+ public const string SessionPrefix = "Session";
+
+ public const string TransmitPrefix = "Transmit";
+ ///
+ /// 添加转发过滤地址
+ ///
+ public static string TransmitAdd = $"{RouteTablePrefix}/{TransmitPrefix}/Add";
+ ///
+ /// 删除转发过滤地址(不能删除在网关服务器配置文件配的地址)
+ ///
+ public static string TransmitRemove = $"{RouteTablePrefix}/{TransmitPrefix}/Remove";
+ ///
+ /// 获取转发过滤地址信息集合
+ ///
+ public static string TransmitGetAll = $"{RouteTablePrefix}/{TransmitPrefix}/GetAll";
+ ///
+ /// 获取Tcp包计数器
+ ///
+ public static string GetTcpAtomicCounter = $"{RouteTablePrefix}/GetTcpAtomicCounter";
+ ///
+ /// 基于Tcp的会话服务集合
+ ///
+ public static string SessionTcpGetAll = $"{RouteTablePrefix}/{SessionPrefix}/Tcp/GetAll";
+ ///
+ /// 基于Tcp的会话服务-通过设备终端号移除对应会话
+ ///
+ public static string SessionTcpRemoveByTerminalPhoneNo = $"{RouteTablePrefix}/{SessionPrefix}/Tcp/RemoveByTerminalPhoneNo";
+ ///
+ /// 基于Tcp的统一下发信息
+ ///
+ public static string UnificationTcpSend = $"{RouteTablePrefix}/UnificationTcpSend";
+ ///
+ /// 获取Udp包计数器
+ ///
+ public static string GetUdpAtomicCounter = $"{RouteTablePrefix}/GetUdpAtomicCounter";
+ ///
+ /// 基于Udp的统一下发信息
+ ///
+ public static string UnificationUdpSend = $"{RouteTablePrefix}/UnificationUdpSend";
+ ///
+ /// 基于Udp的会话服务集合
+ ///
+ public static string SessionUdpGetAll = $"{RouteTablePrefix}/{SessionPrefix}/Udp/GetAll";
+ ///
+ /// 基于Udp的会话服务-通过设备终端号移除对应会话
+ ///
+ public static string SessionUdpRemoveByTerminalPhoneNo = $"{RouteTablePrefix}/{SessionPrefix}/Udp/RemoveByTerminalPhoneNo";
+
+ }
}
}
diff --git a/src/JT808.DotNetty.Core/Codecs/JT808TcpDecoder.cs b/src/JT808.DotNetty.Core/Codecs/JT808TcpDecoder.cs
new file mode 100644
index 0000000..3eb3006
--- /dev/null
+++ b/src/JT808.DotNetty.Core/Codecs/JT808TcpDecoder.cs
@@ -0,0 +1,20 @@
+using DotNetty.Buffers;
+using DotNetty.Codecs;
+using System.Collections.Generic;
+using JT808.Protocol;
+using DotNetty.Transport.Channels;
+
+namespace JT808.DotNetty.Core.Codecs
+{
+ public class JT808TcpDecoder : ByteToMessageDecoder
+ {
+ protected override void Decode(IChannelHandlerContext context, IByteBuffer input, List