diff --git a/README.md b/README.md index 1c2e56c..5a01f96 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # JT808DotNetty -基于DotNetty封装的JT808DotNetty通用消息业务处理 +基于DotNetty封装的JT808DotNetty支持TCP/UDP通用消息业务处理 [了解JT808协议进这边](https://github.com/SmallChi/JT808) @@ -25,92 +25,14 @@ ### 1.集成原包分发器 -| 功能 | 说明 | 使用场景 | -|:-------:|:-------:|:-------:| -| ISourcePackageDispatcher | 原包分发器(支持热更新、断线重连) | 需要将原数据转给其他平台 | - ### 2.集成WebApi服务器 [WebApi接口服务](https://github.com/SmallChi/JT808DotNetty/blob/master/api/README.md) ### 3.集成会话通知(在线/离线) -| 功能 | 说明 | -|:-------:|:-------:| -| JT808SessionPublishingRedisImpl | 基于Redis的发布通知 | -| JT808SessionPublishingEmptyImpl | 默认空实现 | - 使用场景:有些超长待机的设备,不会实时保持连接,那么通过平台下发的命令是无法到达的,这时候就需要设备一上线,就即时通知服务去处理,然后在即时的下发消息到设备。 > 只要实现IJT808SessionPublishing接口的任意一款MQ都能实现该功能。 -### 4.集成业务消息处理程序 - -| 功能 | 说明 | 使用场景 | -|:-------:|:-------:|:-------:| -| JT808MsgIdHandlerBase | 业务消息处理程序 | 需要自定义实现业务消息处理程序 | - -### 举个栗子1 - -#### 4.1.实现业务消息处理程序JT808MsgIdHandlerBase - -```business Imp -public class JT808MsgIdCustomHandler : JT808MsgIdHandlerBase -{ - private readonly ILogger logger; - - public JT808MsgIdCustomHandler(ILoggerFactory loggerFactory, - JT808SessionManager sessionManager) : base(sessionManager) - { - logger = loggerFactory.CreateLogger(); - } - - public override JT808Response Msg0x0102(JT808Request request) - { - logger.LogDebug("Msg0x0102"); - return base.Msg0x0102(request); - } -} - -``` - -#### 4.2.自定义业务消息处理程序替换默认实现 - -``` handler -services.Replace(new ServiceDescriptor(typeof(JT808MsgIdHandlerBase), typeof(JT808MsgIdCustomHandler), ServiceLifetime.Singleton)); -``` - -#### 4.3.使用JT808 Host - -``` host - UseJT808Host() -``` - -#### 4.4.完整示例 - -``` demo -// 默认网关端口:808 -// 默认webapi端口:828 -static async Task Main(string[] args) -{ - var serverHostBuilder = new HostBuilder() - .ConfigureAppConfiguration((hostingContext, config) => - { - config.SetBasePath(AppDomain.CurrentDomain.BaseDirectory); - config.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true); - }) - .ConfigureLogging((context, logging) => - { - logging.AddConsole(); - logging.SetMinimumLevel(LogLevel.Error); - }) - .ConfigureServices((hostContext, services) => - { - services.AddSingleton(); - services.AddSingleton(typeof(ILogger<>), typeof(Logger<>)); - services.Replace(new ServiceDescriptor(typeof(JT808MsgIdHandlerBase), typeof(JT808MsgIdCustomHandler), ServiceLifetime.Singleton)); - }) - .UseJT808Host(); - await serverHostBuilder.RunConsoleAsync(); -} -``` +### 4.集成业务消息处理程序 \ No newline at end of file diff --git a/src/JT808.DotNetty.Tests/JT808.DotNetty.Udp.Test/JT808SessionServiceTest.cs b/src/JT808.DotNetty.Tests/JT808.DotNetty.Udp.Test/JT808SessionServiceTest.cs index f3c0d9f..d9ab3fd 100644 --- a/src/JT808.DotNetty.Tests/JT808.DotNetty.Udp.Test/JT808SessionServiceTest.cs +++ b/src/JT808.DotNetty.Tests/JT808.DotNetty.Udp.Test/JT808SessionServiceTest.cs @@ -33,10 +33,6 @@ namespace JT808.DotNetty.Udp.Test public JT808SessionServiceTest() { - JT808SimpleUdpClient SimpleUdpClient11 = new JT808SimpleUdpClient(new IPEndPoint(IPAddress.Parse("157.255.57.82"), 12818)); - - JT808Package jT808Package11 = JT808.Protocol.Enums.JT808MsgId.终端心跳.Create("123456789001"); - SimpleUdpClient11.WriteAsync(JT808Serializer.Serialize(jT808Package11)); SimpleUdpClient1 = new JT808SimpleUdpClient(endPoint); SimpleUdpClient2 = new JT808SimpleUdpClient(endPoint); SimpleUdpClient3 = new JT808SimpleUdpClient(endPoint);