From aa33ccbc54fafc658614f2d98365dffc21d76e93 Mon Sep 17 00:00:00 2001 From: SmallChi <564952747@qq.com> Date: Thu, 13 Dec 2018 22:07:32 +0800 Subject: [PATCH] =?UTF-8?q?1.=E6=9B=B4=E6=96=B0808=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=202.=E5=A2=9E=E5=8A=A0=E8=AF=B7=E6=B1=82?= =?UTF-8?q?=E5=8E=9F=E5=8C=85=E6=95=B0=E6=8D=AE=E5=B1=9E=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/JT808.DotNetty.sln | 4 ++-- src/JT808.DotNetty/Handlers/JT808ServerHandler.cs | 6 +++++- src/JT808.DotNetty/Metadata/JT808Request.cs | 6 +++++- src/JT808.Protocol | 2 +- 4 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/JT808.DotNetty.sln b/src/JT808.DotNetty.sln index 83fd8cf..9e88174 100644 --- a/src/JT808.DotNetty.sln +++ b/src/JT808.DotNetty.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.28407.52 +# Visual Studio 15 +VisualStudioVersion = 15.0.28307.168 MinimumVisualStudioVersion = 10.0.40219.1 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JT808.DotNetty", "JT808.DotNetty\JT808.DotNetty.csproj", "{80C7F67E-6B7C-4178-8726-ADD3695622DD}" EndProject diff --git a/src/JT808.DotNetty/Handlers/JT808ServerHandler.cs b/src/JT808.DotNetty/Handlers/JT808ServerHandler.cs index e1329ad..401914a 100644 --- a/src/JT808.DotNetty/Handlers/JT808ServerHandler.cs +++ b/src/JT808.DotNetty/Handlers/JT808ServerHandler.cs @@ -50,6 +50,9 @@ namespace JT808.DotNetty.Handlers try { jT808SourcePackageDispatcher?.SendAsync(msg); + //在压力大的情况下可以只解析到头部 + //然后根据具体的消息Id通过队列去进行消费 + //JT808HeaderPackage jT808HeaderPackage = JT808Serializer.Deserialize(msg); JT808Package jT808Package = JT808Serializer.Deserialize(msg); jT808AtomicCounterService.MsgSuccessIncrement(); if (logger.IsEnabled(LogLevel.Debug)) @@ -60,7 +63,8 @@ namespace JT808.DotNetty.Handlers Func handlerFunc; if (handler.HandlerDict.TryGetValue(jT808Package.Header.MsgId, out handlerFunc)) { - JT808Response jT808Response = handlerFunc(new JT808Request(jT808Package)); + //JT808Response jT808Response = handlerFunc(new JT808Request(jT808HeaderPackage, msg)); + JT808Response jT808Response = handlerFunc(new JT808Request(jT808Package, msg)); if (jT808Response != null) { if (!jT808TransmitAddressFilterService.ContainsKey(ctx.Channel.RemoteAddress)) diff --git a/src/JT808.DotNetty/Metadata/JT808Request.cs b/src/JT808.DotNetty/Metadata/JT808Request.cs index a81d4d1..19734f5 100644 --- a/src/JT808.DotNetty/Metadata/JT808Request.cs +++ b/src/JT808.DotNetty/Metadata/JT808Request.cs @@ -9,13 +9,17 @@ namespace JT808.DotNetty.Metadata { public JT808Package Package { get; set; } + public byte[] OriginalPackage { get;} + public JT808Request() { } - public JT808Request(JT808Package package) + + public JT808Request(JT808Package package, byte[] originalPackage) { Package = package; + OriginalPackage = originalPackage; } } } \ No newline at end of file diff --git a/src/JT808.Protocol b/src/JT808.Protocol index 98d718a..5c8215d 160000 --- a/src/JT808.Protocol +++ b/src/JT808.Protocol @@ -1 +1 @@ -Subproject commit 98d718a8d76527201c036f5f63157a21c594c88f +Subproject commit 5c8215dcad9fb833743bd58431b8021647474c21