From dcaaf08181989e0b1db45118f554f52710db23bd Mon Sep 17 00:00:00 2001 From: "smallchi(Koike)" <564952747@qq.com> Date: Sat, 15 Feb 2020 13:33:37 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=A2=9E=E5=8A=A0=E5=9F=BA=E4=BA=8Ekafka?= =?UTF-8?q?=E7=9A=84=E7=BD=91=E5=85=B3demo=E5=8F=8A=E7=AE=80=E5=8D=95?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=202.=E4=BF=AE=E6=94=B9=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 17 +++++++ doc/img/demo4.png | Bin 0 -> 118734 bytes .../JT808.Gateway.SimpleClient.csproj | 4 +- .../JT808.Gateway.SimpleQueueServer.csproj | 23 +++++++++ .../Program.cs | 45 ++++++++++++++++++ .../Impl/JT808QueueReplyMessageHandlerImpl.cs | 37 ++++++++++++++ .../Impl/JT808SessionNoticeServiceImpl.cs | 20 ++++++++ .../JT808.Gateway.SimpleQueueService.csproj | 29 +++++++++++ .../Program.cs | 43 +++++++++++++++++ .../JT808NormalReplyMessageHandlerImpl.cs | 2 +- .../JT808.Gateway.SimpleServer.csproj | 21 ++++---- simples/JT808.Simples.sln | 14 ++++++ 12 files changed, 239 insertions(+), 16 deletions(-) create mode 100644 doc/img/demo4.png create mode 100644 simples/JT808.Gateway.SimpleQueueServer/JT808.Gateway.SimpleQueueServer.csproj create mode 100644 simples/JT808.Gateway.SimpleQueueServer/Program.cs create mode 100644 simples/JT808.Gateway.SimpleQueueService/Impl/JT808QueueReplyMessageHandlerImpl.cs create mode 100644 simples/JT808.Gateway.SimpleQueueService/Impl/JT808SessionNoticeServiceImpl.cs create mode 100644 simples/JT808.Gateway.SimpleQueueService/JT808.Gateway.SimpleQueueService.csproj create mode 100644 simples/JT808.Gateway.SimpleQueueService/Program.cs diff --git a/README.md b/README.md index 0a90429..6573d15 100644 --- a/README.md +++ b/README.md @@ -109,6 +109,8 @@ Pipeline分为两种方式使用,一种是使用队列的方式,一种是网 ### Pipeline +#### 使用网关集成方式 + 1.打开/simples/JT808.Simples.sln项目进行还原编译生成 2.进入JT808.Gateway.SimpleServer项目下的Debug目录运行服务端 @@ -118,6 +120,21 @@ Pipeline分为两种方式使用,一种是使用队列的方式,一种是网 如图所示: ![demo3](https://github.com/SmallChi/JT808Gateway/blob/master/doc/img/demo3.png) +#### 使用队列方式 + +1.打开/simples/JT808.Simples.sln项目进行还原编译生成 + +2.JT808.Gateway.SimpleQueueServer项目下的Debug目录运行服务端 + +3.JT808.Gateway.SimpleQueueService项目下的Debug目录运行消息处理服务 + +4.进入JT808.Gateway.SimpleClient项目下的Debug目录运行客户端 + +> 注意:需要安装kafka和zookeeper + +如图所示: +![demo4](https://github.com/SmallChi/JT808Gateway/blob/master/doc/img/demo4.png) + ### DotNetty 1.打开/simples/JT808.Simples.sln项目进行还原编译生成 diff --git a/doc/img/demo4.png b/doc/img/demo4.png new file mode 100644 index 0000000000000000000000000000000000000000..f1955a60ff427f3c779e938ce94806a0937bed7c GIT binary patch literal 118734 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 M07*qoM6N<$f>4@q!T - - + + diff --git a/simples/JT808.Gateway.SimpleQueueServer/JT808.Gateway.SimpleQueueServer.csproj b/simples/JT808.Gateway.SimpleQueueServer/JT808.Gateway.SimpleQueueServer.csproj new file mode 100644 index 0000000..a274481 --- /dev/null +++ b/simples/JT808.Gateway.SimpleQueueServer/JT808.Gateway.SimpleQueueServer.csproj @@ -0,0 +1,23 @@ + + + + Exe + netcoreapp3.1 + + + + + + + + + + + + + + Always + + + + diff --git a/simples/JT808.Gateway.SimpleQueueServer/Program.cs b/simples/JT808.Gateway.SimpleQueueServer/Program.cs new file mode 100644 index 0000000..d7f7dea --- /dev/null +++ b/simples/JT808.Gateway.SimpleQueueServer/Program.cs @@ -0,0 +1,45 @@ +using JT808.Protocol; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Microsoft.Extensions.Logging; +using System; +using System.Threading.Tasks; +using JT808.Gateway.Kafka; + +namespace JT808.Gateway.SimpleQueueServer +{ + class Program + { + 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.Trace); + }) + .ConfigureServices((hostContext, services) => + { + services.AddSingleton(); + services.AddSingleton(typeof(ILogger<>), typeof(Logger<>)); + services.AddJT808Configure() + .AddQueueGateway(hostContext.Configuration) + .AddServerKafkaMsgProducer(hostContext.Configuration) + .AddServerKafkaMsgReplyConsumer(hostContext.Configuration) + .AddServerKafkaSessionProducer(hostContext.Configuration) + .AddTcp() + .AddUdp() + .AddGrpc() + .Builder(); + }); + + await serverHostBuilder.RunConsoleAsync(); + } + } +} diff --git a/simples/JT808.Gateway.SimpleQueueService/Impl/JT808QueueReplyMessageHandlerImpl.cs b/simples/JT808.Gateway.SimpleQueueService/Impl/JT808QueueReplyMessageHandlerImpl.cs new file mode 100644 index 0000000..e7c200a --- /dev/null +++ b/simples/JT808.Gateway.SimpleQueueService/Impl/JT808QueueReplyMessageHandlerImpl.cs @@ -0,0 +1,37 @@ +using JT808.Gateway.Abstractions; +using JT808.Protocol; +using System; +using System.Collections.Generic; +using System.Text; + +namespace JT808.Gateway.SimpleQueueService.Impl +{ + public class JT808QueueReplyMessageHandlerImpl : JT808QueueReplyMessageHandler + { + public JT808QueueReplyMessageHandlerImpl(IJT808Config jT808Config, IJT808MsgReplyProducer jT808MsgReplyProducer) : base(jT808Config, jT808MsgReplyProducer) + { + //添加自定义消息 + HandlerDict.Add(0x9999, Msg0x9999); + } + + ///

+ /// 重写消息 + /// + /// + /// + public override byte[] Msg0x0001(JT808HeaderPackage request) + { + return base.Msg0x0001(request); + } + + /// + /// 自定义消息 + /// + /// + /// + public byte[] Msg0x9999(JT808HeaderPackage request) + { + return default; + } + } +} diff --git a/simples/JT808.Gateway.SimpleQueueService/Impl/JT808SessionNoticeServiceImpl.cs b/simples/JT808.Gateway.SimpleQueueService/Impl/JT808SessionNoticeServiceImpl.cs new file mode 100644 index 0000000..404ed26 --- /dev/null +++ b/simples/JT808.Gateway.SimpleQueueService/Impl/JT808SessionNoticeServiceImpl.cs @@ -0,0 +1,20 @@ +using JT808.Gateway.SessionNotice; +using Microsoft.Extensions.Logging; +using System; +using System.Collections.Generic; +using System.Text; + +namespace JT808.Gateway.SimpleQueueService.Impl +{ + public class JT808SessionNoticeServiceImpl : JT808SessionNoticeService + { + public JT808SessionNoticeServiceImpl(ILoggerFactory loggerFactory) : base(loggerFactory) + { + } + + public override void Processor((string Notice, string TerminalNo) parameter) + { + base.Processor(parameter); + } + } +} diff --git a/simples/JT808.Gateway.SimpleQueueService/JT808.Gateway.SimpleQueueService.csproj b/simples/JT808.Gateway.SimpleQueueService/JT808.Gateway.SimpleQueueService.csproj new file mode 100644 index 0000000..0b018d1 --- /dev/null +++ b/simples/JT808.Gateway.SimpleQueueService/JT808.Gateway.SimpleQueueService.csproj @@ -0,0 +1,29 @@ + + + + Exe + netcoreapp3.1 + + + + + + + + + + + + + + + + + + + + Always + + + + diff --git a/simples/JT808.Gateway.SimpleQueueService/Program.cs b/simples/JT808.Gateway.SimpleQueueService/Program.cs new file mode 100644 index 0000000..add3c80 --- /dev/null +++ b/simples/JT808.Gateway.SimpleQueueService/Program.cs @@ -0,0 +1,43 @@ +using JT808.Protocol; +using JT808.Gateway.Kafka; +using JT808.Gateway.ReplyMessage; +using JT808.Gateway.SessionNotice; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Microsoft.Extensions.Logging; +using System; +using System.Threading.Tasks; +using JT808.Gateway.SimpleQueueService.Impl; + +namespace JT808.Gateway.SimpleQueueService +{ + class Program + { + static async Task Main(string[] args) + { + var hostBuilder = new HostBuilder() + .ConfigureAppConfiguration((hostContext, config) => { + config.SetBasePath(AppDomain.CurrentDomain.BaseDirectory); + config.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true); + }) + .ConfigureLogging((hostContext, configLogging) => { + configLogging.AddConsole(); + configLogging.SetMinimumLevel(LogLevel.Trace); + }) + .ConfigureServices((hostContext, services) => { + services.AddSingleton(); + services.AddSingleton(typeof(ILogger<>), typeof(Logger<>)); + services.AddJT808Configure() + .AddClientKafka() + .AddMsgConsumer(hostContext.Configuration) + .AddMsgReplyProducer(hostContext.Configuration) + .AddSessionConsumer(hostContext.Configuration) + .AddReplyMessage() + .AddSessionNotice(); + }); + + await hostBuilder.RunConsoleAsync(); + } + } +} diff --git a/simples/JT808.Gateway.SimpleServer/Impl/JT808NormalReplyMessageHandlerImpl.cs b/simples/JT808.Gateway.SimpleServer/Impl/JT808NormalReplyMessageHandlerImpl.cs index 74efb98..1f8b8c9 100644 --- a/simples/JT808.Gateway.SimpleServer/Impl/JT808NormalReplyMessageHandlerImpl.cs +++ b/simples/JT808.Gateway.SimpleServer/Impl/JT808NormalReplyMessageHandlerImpl.cs @@ -46,7 +46,7 @@ namespace JT808.Gateway.SimpleServer.Impl //转发数据(可同步也可以使用队列进行异步) try { - jT808TransmitService.Send(parameter); + jT808TransmitService.SendAsync(parameter); } catch (Exception ex) { diff --git a/simples/JT808.Gateway.SimpleServer/JT808.Gateway.SimpleServer.csproj b/simples/JT808.Gateway.SimpleServer/JT808.Gateway.SimpleServer.csproj index e5b8757..ac7c4b3 100644 --- a/simples/JT808.Gateway.SimpleServer/JT808.Gateway.SimpleServer.csproj +++ b/simples/JT808.Gateway.SimpleServer/JT808.Gateway.SimpleServer.csproj @@ -5,23 +5,17 @@ netcoreapp3.1 - - - - - - - + + + + + + + - - - - - Always - @@ -29,4 +23,5 @@ + diff --git a/simples/JT808.Simples.sln b/simples/JT808.Simples.sln index 1a12087..163bff3 100644 --- a/simples/JT808.Simples.sln +++ b/simples/JT808.Simples.sln @@ -13,6 +13,10 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JT808.Gateway.SimpleServer" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JT808.Gateway.SimpleClient", "JT808.Gateway.SimpleClient\JT808.Gateway.SimpleClient.csproj", "{09AFAC3E-4E4D-4B51-962D-BF8489D8BEC6}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "JT808.Gateway.SimpleQueueServer", "JT808.Gateway.SimpleQueueServer\JT808.Gateway.SimpleQueueServer.csproj", "{8594AC7F-18B4-439D-B58B-1CEFF0833A1A}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "JT808.Gateway.SimpleQueueService", "JT808.Gateway.SimpleQueueService\JT808.Gateway.SimpleQueueService.csproj", "{E2D1CFEF-417A-4C44-BC2E-E5A160602485}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -35,6 +39,14 @@ Global {09AFAC3E-4E4D-4B51-962D-BF8489D8BEC6}.Debug|Any CPU.Build.0 = Debug|Any CPU {09AFAC3E-4E4D-4B51-962D-BF8489D8BEC6}.Release|Any CPU.ActiveCfg = Release|Any CPU {09AFAC3E-4E4D-4B51-962D-BF8489D8BEC6}.Release|Any CPU.Build.0 = Release|Any CPU + {8594AC7F-18B4-439D-B58B-1CEFF0833A1A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8594AC7F-18B4-439D-B58B-1CEFF0833A1A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8594AC7F-18B4-439D-B58B-1CEFF0833A1A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8594AC7F-18B4-439D-B58B-1CEFF0833A1A}.Release|Any CPU.Build.0 = Release|Any CPU + {E2D1CFEF-417A-4C44-BC2E-E5A160602485}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E2D1CFEF-417A-4C44-BC2E-E5A160602485}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E2D1CFEF-417A-4C44-BC2E-E5A160602485}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E2D1CFEF-417A-4C44-BC2E-E5A160602485}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -44,6 +56,8 @@ Global {CCE6AEFB-1AB0-4BD9-8EA2-8B4CDD097E88} = {2459FB59-8A33-49A4-ADBC-A0B12C5886A6} {98E1CDD0-4D4E-48FE-968E-260F0CD5F4D3} = {2459FB59-8A33-49A4-ADBC-A0B12C5886A6} {09AFAC3E-4E4D-4B51-962D-BF8489D8BEC6} = {2459FB59-8A33-49A4-ADBC-A0B12C5886A6} + {8594AC7F-18B4-439D-B58B-1CEFF0833A1A} = {2459FB59-8A33-49A4-ADBC-A0B12C5886A6} + {E2D1CFEF-417A-4C44-BC2E-E5A160602485} = {2459FB59-8A33-49A4-ADBC-A0B12C5886A6} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {FC0FFCEA-E1EF-4C97-A1C5-F89418B6834B}