From 02fc285333617285564df0ca1f1207a1f2a0d89e Mon Sep 17 00:00:00 2001 From: SmallChi <564952747@qq.com> Date: Tue, 25 Dec 2018 17:04:04 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=BD=91=E5=85=B3=E5=8F=AA?= =?UTF-8?q?=E5=BA=8F=E5=88=97=E5=8C=96=E5=A4=B4=E9=83=A8=EF=BC=8C=E6=A0=B9?= =?UTF-8?q?=E6=8D=AE=E5=A4=B4=E9=83=A8=E6=B6=88=E6=81=AFid=E8=BF=9B?= =?UTF-8?q?=E8=A1=8C=E6=B6=88=E6=81=AF=E6=8E=A8=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/JT808.DotNetty/Handlers/JT808ServerHandler.cs | 15 +++++++-------- src/JT808.DotNetty/JT808MsgIdHandlerBase.cs | 8 +++----- src/JT808.DotNetty/Metadata/JT808Request.cs | 12 +++++------- 3 files changed, 15 insertions(+), 20 deletions(-) diff --git a/src/JT808.DotNetty/Handlers/JT808ServerHandler.cs b/src/JT808.DotNetty/Handlers/JT808ServerHandler.cs index 2bff7dd..6cca2a4 100644 --- a/src/JT808.DotNetty/Handlers/JT808ServerHandler.cs +++ b/src/JT808.DotNetty/Handlers/JT808ServerHandler.cs @@ -50,21 +50,20 @@ namespace JT808.DotNetty.Handlers try { jT808SourcePackageDispatcher?.SendAsync(msg); - //在压力大的情况下可以只解析到头部 - //然后根据具体的消息Id通过队列去进行消费 - //JT808HeaderPackage jT808HeaderPackage = JT808Serializer.Deserialize(msg); - JT808Package jT808Package = JT808Serializer.Deserialize(msg); + //解析到头部,然后根据具体的消息Id通过队列去进行消费 + //要是一定要解析到数据体可以在JT808MsgIdHandlerBase类中根据具体的消息, + //解析具体的消息体,具体调用JT808Serializer.Deserialize + JT808HeaderPackage jT808HeaderPackage = JT808Serializer.Deserialize(msg); jT808AtomicCounterService.MsgSuccessIncrement(); if (logger.IsEnabled(LogLevel.Debug)) { logger.LogDebug("accept package success count<<<" + jT808AtomicCounterService.MsgSuccessCount.ToString()); } - jT808SessionManager.TryAdd(new JT808Session(ctx.Channel, jT808Package.Header.TerminalPhoneNo)); + jT808SessionManager.TryAdd(new JT808Session(ctx.Channel, jT808HeaderPackage.Header.TerminalPhoneNo)); Func handlerFunc; - if (handler.HandlerDict.TryGetValue(jT808Package.Header.MsgId, out handlerFunc)) + if (handler.HandlerDict.TryGetValue(jT808HeaderPackage.Header.MsgId, out handlerFunc)) { - //JT808Response jT808Response = handlerFunc(new JT808Request(jT808HeaderPackage, msg)); - JT808Response jT808Response = handlerFunc(new JT808Request(jT808Package, msg)); + JT808Response jT808Response = handlerFunc(new JT808Request(jT808HeaderPackage, msg)); if (jT808Response != null) { if (!jT808TransmitAddressFilterService.ContainsKey(ctx.Channel.RemoteAddress)) diff --git a/src/JT808.DotNetty/JT808MsgIdHandlerBase.cs b/src/JT808.DotNetty/JT808MsgIdHandlerBase.cs index a6719bf..332698b 100644 --- a/src/JT808.DotNetty/JT808MsgIdHandlerBase.cs +++ b/src/JT808.DotNetty/JT808MsgIdHandlerBase.cs @@ -1,10 +1,6 @@ using System; -using System.Collections; using System.Collections.Generic; -using System.Text; -using DotNetty.Transport.Channels; using JT808.DotNetty.Metadata; -using JT808.Protocol; using JT808.Protocol.Enums; using JT808.Protocol.Extensions; using JT808.Protocol.MessageBody; @@ -14,8 +10,10 @@ namespace JT808.DotNetty /// /// 抽象消息处理业务 /// 自定义消息处理业务 - /// ConfigureServices: + /// 注意: + /// 1.ConfigureServices: /// services.Replace(new ServiceDescriptor(typeof(JT808MsgIdHandlerBase),typeof(JT808MsgIdCustomHandlerImpl),ServiceLifetime.Singleton)); + /// 2.解析具体的消息体,具体消息调用具体的JT808Serializer.Deserialize /// public abstract class JT808MsgIdHandlerBase { diff --git a/src/JT808.DotNetty/Metadata/JT808Request.cs b/src/JT808.DotNetty/Metadata/JT808Request.cs index 19734f5..e914a7f 100644 --- a/src/JT808.DotNetty/Metadata/JT808Request.cs +++ b/src/JT808.DotNetty/Metadata/JT808Request.cs @@ -7,16 +7,14 @@ namespace JT808.DotNetty.Metadata { public class JT808Request { - public JT808Package Package { get; set; } + public JT808HeaderPackage Package { get; } + /// + /// 用于消息发送 + /// public byte[] OriginalPackage { get;} - public JT808Request() - { - - } - - public JT808Request(JT808Package package, byte[] originalPackage) + public JT808Request(JT808HeaderPackage package, byte[] originalPackage) { Package = package; OriginalPackage = originalPackage;