2.将原来的消息处理接口改为上下行标识 3.修改文档 4.去掉无用的类文件tags/v2.3.3-dotnetty_v1.1.1-pipeline
@@ -46,7 +46,7 @@ | |||
| 服务名称 | 服务说明 | 使用场景 | | |||
| :-------------------------------- | :----------- | :----------------------------------------------------------------------------------------------------------------- | | |||
| MsgIdHandler (v1.1.0新版pipeline) | 消息处理服务 | 从队列中消费设备上报数据,再结合自身的业务场景,将数据进行处理并入库 | | |||
| MsgIdHandler | 消息处理服务 | 从队列中消费设备上报数据,再结合自身的业务场景,将数据进行处理并入库 | | |||
| MsgLogging | 消息日志服务 | 从队列中消费设备上报和平台应答数据,再将数据存入influxdb等数据库中,便于技术和技术支持排查设备与平台交互的原始数据 | | |||
| ReplyMessage | 消息响应服务 | 用于响应设备上报消息,以及下发指令信息到设备 | | |||
| SessionNotice | 会话管理服务 | 通知设备上线下线,对于udp设备来说,可以在设备上线时,将指令跟随消息下发到设备 | | |||
@@ -83,29 +83,29 @@ Pipeline分为两种方式使用,一种是使用队列的方式,一种是网 | |||
| Install-Package JT808.Gateway.SessionNotice |  |  |  | | |||
| Install-Package JT808.Gateway.ReplyMessage |  |  |  | | |||
| Install-Package JT808.Gateway.MsgLogging |  |  |  | | |||
| Install-Package JT808.Gateway.MsgIdHandler (v1.1.0新版已移出) |  |  |  | | |||
| Install-Package JT808.Gateway.MsgIdHandler |  |  |  | | |||
| Install-Package JT808.Gateway.Traffic (v1.1.0新版已移出) |  |  |  | | |||
## 基于DotNetty | |||
### DotNetty的NuGet安装 | |||
| Package Name | Version | Downloads | | |||
| ----------------------------------------------- | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------- | | |||
| Install-Package JT808.DotNetty.Abstractions |  |  | | |||
| Install-Package JT808.DotNetty.Core |  |  | | |||
| Install-Package JT808.DotNetty.Tcp |  |  | | |||
| Install-Package JT808.DotNetty.Udp |  |  | | |||
| Install-Package JT808.DotNetty.WebApi |  |  | | |||
| Install-Package JT808.DotNetty.WebApiClientTool |  |  | | |||
| Install-Package JT808.DotNetty.Client |  |  | | |||
| Install-Package JT808.DotNetty.Transmit |  |  | | |||
| Install-Package JT808.DotNetty.Traffic |  |  | | |||
| Install-Package JT808.DotNetty.SessionNotice |  |  | | |||
| Install-Package JT808.DotNetty.ReplyMessage |  |  | | |||
| Install-Package JT808.DotNetty.MsgLogging |  |  | | |||
| Install-Package JT808.DotNetty.MsgIdHandler |  |  | | |||
| Install-Package JT808.DotNetty.Kafka |  |  | | |||
| Package Name| Version |Preview Version | Downloads| | |||
| --- | --- | ---| ---| | |||
| Install-Package JT808.DotNetty.Abstractions | |  |  | | |||
| Install-Package JT808.DotNetty.Core |  |  |  | | |||
| Install-Package JT808.DotNetty.Tcp |  |  |  | | |||
| Install-Package JT808.DotNetty.Udp |  |  |  | | |||
| Install-Package JT808.DotNetty.WebApi |  |  |  | | |||
| Install-Package JT808.DotNetty.WebApiClientTool |  |  |  | | |||
| Install-Package JT808.DotNetty.Client |  |  |  | | |||
| Install-Package JT808.DotNetty.Transmit |  |  |  | | |||
| Install-Package JT808.DotNetty.Traffic |  |  |  | | |||
| Install-Package JT808.DotNetty.SessionNotice | |  |  | | |||
| Install-Package JT808.DotNetty.ReplyMessage |  |  |  | | |||
| Install-Package JT808.DotNetty.MsgLogging |  |  |  ||  | |||
| Install-Package JT808.DotNetty.MsgIdHandler |  |  |  | | |||
| Install-Package JT808.DotNetty.Kafka |  |  |  |  | | |||
## 举个栗子 | |||
@@ -18,6 +18,10 @@ | |||
[基于Udp管理会话服务](#udp_session) | |||
## 3.SIM黑名单管理服务 | |||
[SIM黑名单管理服务](#blacklist) | |||
## 接口请求对照表 | |||
### 公共接口请求 | |||
@@ -42,6 +46,14 @@ | |||
| 127.0.0.1:828/jt808api/Udp/Session/QueryUdpSessionByTerminalPhoneNo| POST| 基于Udp管理会话服务-通过设备终端号查询对应会话| | |||
| 127.0.0.1:828/jt808api/Udp/Session/RemoveUdpByTerminalPhoneNo| POST| 基于Udp管理会话服务-通过设备终端号移除对应会话| | |||
### SIM黑名单管理接口请求 | |||
|请求Url|请求方式|说明| | |||
|:------|:------|:------| | |||
| 127.0.0.1:828/jt808api/Blacklist/Add| POST| SIM卡黑名单服务-将对应SIM号加入黑名单| | |||
| 127.0.0.1:828/jt808api/Blacklist/Remove| POST| SIM卡黑名单服务-将对应SIM号移除黑名单| | |||
| 127.0.0.1:828/jt808api/Blacklist/Get| Get| SIM卡黑名单服务-获取所有sim的黑名单列表| | |||
### 统一对象返回 JT808ResultDto\<T> | |||
|属性|数据类型|参数说明| | |||
@@ -299,3 +311,86 @@ | |||
"Data":true | |||
} | |||
``` | |||
### <span id="blacklist">SIM黑名单管理服务</span> | |||
#### 1.添加sim卡黑名单 | |||
请求地址:Blacklist/Add | |||
请求方式:POST | |||
请求参数: | |||
|属性|数据类型|参数说明| | |||
|:------:|:------:|:------| | |||
| terminalPhoneNo| string| 设备终端号| | |||
返回数据: | |||
|属性|数据类型|参数说明| | |||
|:------:|:------:|:------| | |||
| Data| bool | 是否成功 | |||
返回结果: | |||
``` session3 | |||
{ | |||
"Message":"", | |||
"Code":200, | |||
"Data":true | |||
} | |||
``` | |||
#### 2.移除sim卡黑名单 | |||
请求地址:Blacklist/Remove | |||
请求方式:POST | |||
请求参数: | |||
|属性|数据类型|参数说明| | |||
|:------:|:------:|:------| | |||
| terminalPhoneNo| string| 设备终端号| | |||
返回数据: | |||
|属性|数据类型|参数说明| | |||
|:------:|:------:|:------| | |||
| Data| bool | 是否成功 | |||
返回结果: | |||
``` session3 | |||
{ | |||
"Message":"", | |||
"Code":200, | |||
"Data":true | |||
} | |||
``` | |||
#### 3.移除sim卡黑名单 | |||
请求地址:Blacklist/Get | |||
请求方式:GET | |||
返回数据: | |||
|属性|数据类型|参数说明| | |||
|:------:|:------:|:------| | |||
| terminalPhoneNo| List\<string>| 设备终端号集合| | |||
返回结果: | |||
``` session3 | |||
{ | |||
"Message":"", | |||
"Code":200, | |||
"Data":[ | |||
"12345678901", | |||
"12345678902" | |||
] | |||
} | |||
``` |
@@ -8,7 +8,7 @@ dotnet pack .\src\JT808.DotNetty.Client\JT808.DotNetty.Client.csproj -c Release | |||
dotnet pack .\src\JT808.DotNetty.Abstractions\JT808.DotNetty.Abstractions.csproj -c Release --output nupkgs | |||
echo 'push service pacakge...' | |||
dotnet pack .\src\JT808.DotNetty.Services\JT808.DotNetty.MsgIdHandler\JT808.DotNetty.MsgIdHandler.csproj -c Release--output nupkgs | |||
dotnet pack .\src\JT808.DotNetty.Services\JT808.DotNetty.MsgIdHandler\JT808.DotNetty.MsgIdHandler.csproj -c Release --output nupkgs | |||
dotnet pack .\src\JT808.DotNetty.Services\JT808.DotNetty.MsgLogging\JT808.DotNetty.MsgLogging.csproj -c Release --output nupkgs | |||
dotnet pack .\src\JT808.DotNetty.Services\JT808.DotNetty.ReplyMessage\JT808.DotNetty.ReplyMessage.csproj -c Release --output nupkgs | |||
dotnet pack .\src\JT808.DotNetty.Services\JT808.DotNetty.SessionNotice\JT808.DotNetty.SessionNotice.csproj -c Release --output nupkgs | |||
@@ -9,4 +9,5 @@ dotnet pack .\src\JT808.Gateway.Services\JT808.Gateway.MsgLogging\JT808.Gateway. | |||
dotnet pack .\src\JT808.Gateway.Services\JT808.Gateway.ReplyMessage\JT808.Gateway.ReplyMessage.csproj -c Release --output nupkgs | |||
dotnet pack .\src\JT808.Gateway.Services\JT808.Gateway.SessionNotice\JT808.Gateway.SessionNotice.csproj -c Release --output nupkgs | |||
dotnet pack .\src\JT808.Gateway.Services\JT808.Gateway.Transmit\JT808.Gateway.Transmit.csproj -c Release --output nupkgs | |||
dotnet pack .\src\JT808.Gateway.Services\JT808.Gateway.MsgIdHandler\JT808.Gateway.MsgIdHandler.csproj -c Release --output nupkgs | |||
pause |
@@ -1,18 +0,0 @@ | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Text; | |||
namespace JT808.Gateway.Abstractions.Enums | |||
{ | |||
[Flags] | |||
public enum JT808ConsumerType:int | |||
{ | |||
MsgIdHandlerConsumer=1, | |||
MsgLoggingConsumer=2, | |||
ReplyMessageConsumer=4, | |||
TrafficConsumer=8, | |||
TransmitConsumer=16, | |||
ReplyMessageLoggingConsumer = 32, | |||
All = 64, | |||
} | |||
} |
@@ -9,7 +9,13 @@ namespace JT808.Gateway.Abstractions.Enums | |||
/// </summary> | |||
public enum JT808TransportProtocolType | |||
{ | |||
tcp=1, | |||
/// <summary> | |||
/// tcp | |||
/// </summary> | |||
tcp = 1, | |||
/// <summary> | |||
/// udp | |||
/// </summary> | |||
udp = 2 | |||
} | |||
} |
@@ -8,13 +8,16 @@ using System.Text; | |||
namespace JT808.Gateway.Abstractions | |||
{ | |||
public interface IJT808ReplyMessageHandler | |||
/// <summary> | |||
/// 下行消息处理接口 | |||
/// </summary> | |||
public interface IJT808DownMessageHandler | |||
{ | |||
/// <summary> | |||
/// | |||
/// </summary> | |||
/// <param name="TerminalNo">请求数据</param> | |||
/// <param name="Data">当前会话</param> | |||
/// <param name="TerminalNo">sim</param> | |||
/// <param name="Data">808 hex</param> | |||
/// <returns>应答消息数据</returns> | |||
public byte[] Processor(string TerminalNo, byte[] Data); | |||
} |
@@ -0,0 +1,23 @@ | |||
using JT808.Protocol; | |||
using JT808.Protocol.Enums; | |||
using JT808.Protocol.Extensions; | |||
using JT808.Protocol.MessageBody; | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Text; | |||
namespace JT808.Gateway.Abstractions | |||
{ | |||
/// <summary> | |||
/// 上行消息处理接口 | |||
/// </summary> | |||
public interface IJT808UpMessageHandler | |||
{ | |||
/// <summary> | |||
/// | |||
/// </summary> | |||
/// <param name="TerminalNo">sim</param> | |||
/// <param name="Data">808 hex</param> | |||
public void Processor(string TerminalNo, byte[] Data); | |||
} | |||
} |
@@ -115,6 +115,16 @@ | |||
传输协议类型 | |||
</summary> | |||
</member> | |||
<member name="F:JT808.Gateway.Abstractions.Enums.JT808TransportProtocolType.tcp"> | |||
<summary> | |||
tcp | |||
</summary> | |||
</member> | |||
<member name="F:JT808.Gateway.Abstractions.Enums.JT808TransportProtocolType.udp"> | |||
<summary> | |||
udp | |||
</summary> | |||
</member> | |||
<member name="T:JT808.Gateway.Abstractions.JT808SessionExtensions"> | |||
<summary> | |||
JT808会话扩展 | |||
@@ -134,6 +144,19 @@ | |||
<param name="session"></param> | |||
<param name="data"></param> | |||
</member> | |||
<member name="T:JT808.Gateway.Abstractions.IJT808DownMessageHandler"> | |||
<summary> | |||
下行消息处理接口 | |||
</summary> | |||
</member> | |||
<member name="M:JT808.Gateway.Abstractions.IJT808DownMessageHandler.Processor(System.String,System.Byte[])"> | |||
<summary> | |||
</summary> | |||
<param name="TerminalNo">sim</param> | |||
<param name="Data">808 hex</param> | |||
<returns>应答消息数据</returns> | |||
</member> | |||
<member name="M:JT808.Gateway.Abstractions.IJT808MsgProducer.ProduceAsync(System.String,System.Byte[])"> | |||
<summary> | |||
@@ -155,14 +178,6 @@ | |||
<param name="terminalNo">设备终端号</param> | |||
<param name="data">808 hex data</param> | |||
</member> | |||
<member name="M:JT808.Gateway.Abstractions.IJT808ReplyMessageHandler.Processor(System.String,System.Byte[])"> | |||
<summary> | |||
</summary> | |||
<param name="TerminalNo">请求数据</param> | |||
<param name="Data">当前会话</param> | |||
<returns>应答消息数据</returns> | |||
</member> | |||
<member name="P:JT808.Gateway.Abstractions.IJT808Session.TerminalPhoneNo"> | |||
<summary> | |||
终端手机号 | |||
@@ -185,6 +200,18 @@ | |||
<param name="notice"></param> | |||
<param name="terminalNo"></param> | |||
</member> | |||
<member name="T:JT808.Gateway.Abstractions.IJT808UpMessageHandler"> | |||
<summary> | |||
上行消息处理接口 | |||
</summary> | |||
</member> | |||
<member name="M:JT808.Gateway.Abstractions.IJT808UpMessageHandler.Processor(System.String,System.Byte[])"> | |||
<summary> | |||
</summary> | |||
<param name="TerminalNo">sim</param> | |||
<param name="Data">808 hex</param> | |||
</member> | |||
<member name="F:JT808.Gateway.Abstractions.JT808GatewayConstants.JT808WebApiRouteTable.SessionTcpGetAll"> | |||
<summary> | |||
基于Tcp的会话服务集合 | |||
@@ -240,6 +267,34 @@ | |||
通用消息处理程序 | |||
</summary> | |||
</member> | |||
<member name="P:JT808.Gateway.Abstractions.JT808MessageHandler.HandlerDict"> | |||
<summary> | |||
处理消息工厂 | |||
</summary> | |||
</member> | |||
<member name="T:JT808.Gateway.Abstractions.JT808MessageHandler.MsgIdMethodDelegate"> | |||
<summary> | |||
</summary> | |||
<param name="package"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="P:JT808.Gateway.Abstractions.JT808MessageHandler.JT808Serializer"> | |||
<summary> | |||
JT808序列化器 | |||
</summary> | |||
</member> | |||
<member name="F:JT808.Gateway.Abstractions.JT808MessageHandler.JT808Config"> | |||
<summary> | |||
JT808配置 | |||
</summary> | |||
</member> | |||
<member name="M:JT808.Gateway.Abstractions.JT808MessageHandler.#ctor(JT808.Protocol.IJT808Config)"> | |||
<summary> | |||
</summary> | |||
<param name="jT808Config"></param> | |||
</member> | |||
<member name="M:JT808.Gateway.Abstractions.JT808MessageHandler.Processor(JT808.Protocol.JT808HeaderPackage@)"> | |||
<summary> | |||
消息处理 | |||
@@ -4,10 +4,6 @@ using JT808.Protocol.Extensions; | |||
using JT808.Protocol.MessageBody; | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Text; | |||
using System.Threading.Tasks; | |||
using Microsoft.Extensions.Options; | |||
using JT808.Gateway.Abstractions.Configurations; | |||
namespace JT808.Gateway.Abstractions | |||
{ | |||
@@ -16,13 +12,30 @@ namespace JT808.Gateway.Abstractions | |||
/// </summary> | |||
public class JT808MessageHandler | |||
{ | |||
/// <summary> | |||
/// 处理消息工厂 | |||
/// </summary> | |||
protected Dictionary<ushort, MsgIdMethodDelegate> HandlerDict { get; } | |||
/// <summary> | |||
/// | |||
/// </summary> | |||
/// <param name="package"></param> | |||
/// <returns></returns> | |||
protected delegate byte[] MsgIdMethodDelegate(JT808HeaderPackage package); | |||
/// <summary> | |||
/// JT808序列化器 | |||
/// </summary> | |||
protected JT808Serializer JT808Serializer { get; } | |||
/// <summary> | |||
/// JT808配置 | |||
/// </summary> | |||
protected IJT808Config JT808Config; | |||
/// <summary> | |||
/// | |||
/// </summary> | |||
/// <param name="jT808Config"></param> | |||
public JT808MessageHandler(IJT808Config jT808Config) | |||
{ | |||
this.JT808Config = jT808Config; | |||
@@ -53,9 +53,9 @@ namespace JT808.Gateway.Kafka | |||
{ | |||
logger.LogError(ex, TopicName); | |||
} | |||
catch (OperationCanceledException ex) | |||
catch (OperationCanceledException) | |||
{ | |||
logger.LogError(ex, TopicName); | |||
} | |||
catch (Exception ex) | |||
{ | |||
@@ -53,9 +53,8 @@ namespace JT808.Gateway.Kafka | |||
{ | |||
logger.LogError(ex, TopicName); | |||
} | |||
catch (OperationCanceledException ex) | |||
catch (OperationCanceledException) | |||
{ | |||
logger.LogError(ex, TopicName); | |||
} | |||
catch (Exception ex) | |||
{ | |||
@@ -53,9 +53,8 @@ namespace JT808.Gateway.Kafka | |||
{ | |||
logger.LogError(ex, TopicName); | |||
} | |||
catch (OperationCanceledException ex) | |||
catch (OperationCanceledException) | |||
{ | |||
logger.LogError(ex, TopicName); | |||
} | |||
catch (Exception ex) | |||
{ | |||
@@ -2,8 +2,8 @@ | |||
<Import Project="..\..\Version.props" /> | |||
<PropertyGroup> | |||
<TargetFramework>netstandard2.1</TargetFramework> | |||
<LangVersion>8.0</LangVersion> | |||
<TargetFrameworks>netstandard2.1;net5.0;</TargetFrameworks> | |||
<LangVersion>9.0</LangVersion> | |||
<Copyright>Copyright 2019.</Copyright> | |||
<Authors>SmallChi(Koike)</Authors> | |||
<RepositoryUrl>https://github.com/SmallChi/JT808Gateway</RepositoryUrl> | |||
@@ -8,10 +8,10 @@ namespace JT808.Gateway.MsgIdHandler | |||
{ | |||
public static class JT808MsgIdHandlerExtensions | |||
{ | |||
public static IJT808ClientBuilder AddMsgIdHandler<TJT808MsgIdHandler>(this IJT808ClientBuilder jT808ClientBuilder) | |||
where TJT808MsgIdHandler: IJT808MsgIdHandler | |||
public static IJT808ClientBuilder AddMsgIdHandler<TJT808UpMessageHandler>(this IJT808ClientBuilder jT808ClientBuilder) | |||
where TJT808UpMessageHandler : IJT808UpMessageHandler | |||
{ | |||
jT808ClientBuilder.JT808Builder.Services.AddSingleton(typeof(IJT808MsgIdHandler),typeof(TJT808MsgIdHandler)); | |||
jT808ClientBuilder.JT808Builder.Services.AddSingleton(typeof(IJT808UpMessageHandler),typeof(TJT808UpMessageHandler)); | |||
jT808ClientBuilder.JT808Builder.Services.AddHostedService<JT808MsgIdHandlerHostedService>(); | |||
return jT808ClientBuilder; | |||
} | |||
@@ -9,9 +9,9 @@ namespace JT808.Gateway.MsgIdHandler | |||
{ | |||
private readonly IJT808MsgConsumer jT808MsgConsumer; | |||
private readonly IJT808MsgIdHandler jT808MsgIdHandler; | |||
private readonly IJT808UpMessageHandler jT808MsgIdHandler; | |||
public JT808MsgIdHandlerHostedService( | |||
IJT808MsgIdHandler jT808MsgIdHandler, | |||
IJT808UpMessageHandler jT808MsgIdHandler, | |||
IJT808MsgConsumer jT808MsgConsumer) | |||
{ | |||
this.jT808MsgIdHandler = jT808MsgIdHandler; | |||
@@ -21,7 +21,7 @@ namespace JT808.Gateway.MsgIdHandler | |||
public Task StartAsync(CancellationToken cancellationToken) | |||
{ | |||
jT808MsgConsumer.Subscribe(); | |||
jT808MsgConsumer.OnMessage(jT808MsgIdHandler.Processor); | |||
jT808MsgConsumer.OnMessage((Msg)=>jT808MsgIdHandler.Processor(Msg.TerminalNo, Msg.Data)); | |||
return Task.CompletedTask; | |||
} | |||
@@ -4,12 +4,31 @@ | |||
<name>JT808.Gateway.ReplyMessage</name> | |||
</assembly> | |||
<members> | |||
<member name="T:JT808.Gateway.ReplyMessage.JT808ReplyMessageExtensions"> | |||
<summary> | |||
消息应答服务扩展 | |||
</summary> | |||
</member> | |||
<member name="M:JT808.Gateway.ReplyMessage.JT808ReplyMessageExtensions.AddReplyMessage``1(JT808.Gateway.Abstractions.IJT808ClientBuilder)"> | |||
<summary> | |||
消息应答服务 | |||
消息下行服务 | |||
</summary> | |||
<param name="jT808ClientBuilder"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="T:JT808.Gateway.ReplyMessage.JT808ReplyMessageHostedService"> | |||
<summary> | |||
</summary> | |||
</member> | |||
<member name="M:JT808.Gateway.ReplyMessage.JT808ReplyMessageHostedService.#ctor(Microsoft.Extensions.Logging.ILoggerFactory,JT808.Gateway.Abstractions.IJT808DownMessageHandler,JT808.Gateway.Abstractions.IJT808MsgReplyProducer,JT808.Gateway.Abstractions.IJT808MsgConsumer)"> | |||
<summary> | |||
</summary> | |||
<param name="loggerFactory"></param> | |||
<param name="jT808ReplyMessageHandler"></param> | |||
<param name="jT808MsgReplyProducer"></param> | |||
<param name="jT808MsgConsumer"></param> | |||
</member> | |||
</members> | |||
</doc> |
@@ -8,17 +8,20 @@ using System.Text; | |||
namespace JT808.Gateway.ReplyMessage | |||
{ | |||
/// <summary> | |||
/// 消息应答服务扩展 | |||
/// </summary> | |||
public static class JT808ReplyMessageExtensions | |||
{ | |||
/// <summary> | |||
/// 消息应答服务 | |||
/// 消息下行服务 | |||
/// </summary> | |||
/// <param name="jT808ClientBuilder"></param> | |||
/// <returns></returns> | |||
public static IJT808ClientBuilder AddReplyMessage<TJT808ReplyMessageHandler>(this IJT808ClientBuilder jT808ClientBuilder) | |||
where TJT808ReplyMessageHandler : IJT808ReplyMessageHandler | |||
where TJT808ReplyMessageHandler : IJT808DownMessageHandler | |||
{ | |||
jT808ClientBuilder.JT808Builder.Services.Add(new ServiceDescriptor(typeof(IJT808ReplyMessageHandler),typeof(TJT808ReplyMessageHandler), ServiceLifetime.Singleton)); | |||
jT808ClientBuilder.JT808Builder.Services.Add(new ServiceDescriptor(typeof(IJT808DownMessageHandler),typeof(TJT808ReplyMessageHandler), ServiceLifetime.Singleton)); | |||
jT808ClientBuilder.JT808Builder.Services.AddHostedService<JT808ReplyMessageHostedService>(); | |||
return jT808ClientBuilder; | |||
} | |||
@@ -6,15 +6,25 @@ using Microsoft.Extensions.Logging; | |||
namespace JT808.Gateway.ReplyMessage | |||
{ | |||
/// <summary> | |||
/// | |||
/// </summary> | |||
public class JT808ReplyMessageHostedService : IHostedService | |||
{ | |||
private IJT808MsgConsumer jT808MsgConsumer; | |||
private IJT808ReplyMessageHandler jT808ReplyMessageHandler; | |||
private IJT808DownMessageHandler jT808ReplyMessageHandler; | |||
private IJT808MsgReplyProducer jT808MsgReplyProducer; | |||
private ILogger logger; | |||
/// <summary> | |||
/// | |||
/// </summary> | |||
/// <param name="loggerFactory"></param> | |||
/// <param name="jT808ReplyMessageHandler"></param> | |||
/// <param name="jT808MsgReplyProducer"></param> | |||
/// <param name="jT808MsgConsumer"></param> | |||
public JT808ReplyMessageHostedService( | |||
ILoggerFactory loggerFactory, | |||
IJT808ReplyMessageHandler jT808ReplyMessageHandler, | |||
IJT808DownMessageHandler jT808ReplyMessageHandler, | |||
IJT808MsgReplyProducer jT808MsgReplyProducer, | |||
IJT808MsgConsumer jT808MsgConsumer) | |||
{ | |||
@@ -6,14 +6,14 @@ | |||
<members> | |||
<member name="M:JT808.Gateway.SessionNotice.JT808SessionNoticeExtensions.AddSessionNotice(JT808.Gateway.Abstractions.IJT808ClientBuilder)"> | |||
<summary> | |||
会话通知服务(不同的消费者实例) | |||
会话通知服务 | |||
</summary> | |||
<param name="jT808ClientBuilder"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:JT808.Gateway.SessionNotice.JT808SessionNoticeExtensions.AddSessionNotice``1(JT808.Gateway.Abstractions.IJT808ClientBuilder)"> | |||
<summary> | |||
消息会话通知服务(不同的消费者实例) | |||
消息会话通知服务 | |||
</summary> | |||
<typeparam name="TSessionNoticeService">自定义会话通知服务</typeparam> | |||
<param name="jT808ClientBuilder"></param> | |||
@@ -21,14 +21,14 @@ | |||
</member> | |||
<member name="M:JT808.Gateway.SessionNotice.JT808SessionNoticeExtensions.AddSessionNotice(JT808.Gateway.Abstractions.IJT808GatewayBuilder)"> | |||
<summary> | |||
会话通知服务(不同的消费者实例) | |||
会话通知服务 | |||
</summary> | |||
<param name="jT808GatewayBuilder"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:JT808.Gateway.SessionNotice.JT808SessionNoticeExtensions.AddSessionNotice``1(JT808.Gateway.Abstractions.IJT808GatewayBuilder)"> | |||
<summary> | |||
消息会话通知服务(不同的消费者实例) | |||
消息会话通知服务 | |||
</summary> | |||
<typeparam name="TSessionNoticeService">自定义会话通知服务</typeparam> | |||
<param name="jT808NormalGatewayBuilder"></param> | |||
@@ -10,7 +10,7 @@ namespace JT808.Gateway.SessionNotice | |||
public static class JT808SessionNoticeExtensions | |||
{ | |||
/// <summary> | |||
/// 会话通知服务(不同的消费者实例) | |||
/// 会话通知服务 | |||
/// </summary> | |||
/// <param name="jT808ClientBuilder"></param> | |||
/// <returns></returns> | |||
@@ -22,7 +22,7 @@ namespace JT808.Gateway.SessionNotice | |||
} | |||
/// <summary> | |||
/// 消息会话通知服务(不同的消费者实例) | |||
/// 消息会话通知服务 | |||
/// </summary> | |||
/// <typeparam name="TSessionNoticeService">自定义会话通知服务</typeparam> | |||
/// <param name="jT808ClientBuilder"></param> | |||
@@ -36,7 +36,7 @@ namespace JT808.Gateway.SessionNotice | |||
} | |||
/// <summary> | |||
/// 会话通知服务(不同的消费者实例) | |||
/// 会话通知服务 | |||
/// </summary> | |||
/// <param name="jT808GatewayBuilder"></param> | |||
/// <returns></returns> | |||
@@ -48,7 +48,7 @@ namespace JT808.Gateway.SessionNotice | |||
} | |||
/// <summary> | |||
/// 消息会话通知服务(不同的消费者实例) | |||
/// 消息会话通知服务 | |||
/// </summary> | |||
/// <typeparam name="TSessionNoticeService">自定义会话通知服务</typeparam> | |||
/// <param name="jT808NormalGatewayBuilder"></param> | |||
@@ -10,16 +10,16 @@ using System.Text; | |||
namespace JT808.Gateway.QueueHosting.Impl | |||
{ | |||
public class JT808ReplyMessageHandlerImpl : IJT808ReplyMessageHandler | |||
public class JT808DownMessageHandlerImpl : IJT808DownMessageHandler | |||
{ | |||
private ILogger logger; | |||
private JT808Serializer JT808Serializer; | |||
public JT808ReplyMessageHandlerImpl( | |||
public JT808DownMessageHandlerImpl( | |||
IJT808Config jT808Config, | |||
ILoggerFactory loggerFactory) | |||
{ | |||
logger = loggerFactory.CreateLogger<JT808ReplyMessageHandlerImpl>(); | |||
logger = loggerFactory.CreateLogger<JT808DownMessageHandlerImpl>(); | |||
JT808Serializer = jT808Config.GetSerializer(); | |||
} | |||
@@ -0,0 +1,33 @@ | |||
using JT808.Gateway.Abstractions; | |||
using JT808.Protocol; | |||
using JT808.Protocol.Extensions; | |||
using Microsoft.Extensions.Logging; | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Linq; | |||
using System.Text; | |||
using System.Threading.Tasks; | |||
namespace JT808.Gateway.QueueHosting.Impl | |||
{ | |||
public class JT808UpMessageHandlerImpl : IJT808UpMessageHandler | |||
{ | |||
private ILogger logger; | |||
private JT808Serializer JT808Serializer; | |||
public JT808UpMessageHandlerImpl( | |||
IJT808Config jT808Config, | |||
ILoggerFactory loggerFactory) | |||
{ | |||
logger = loggerFactory.CreateLogger<JT808UpMessageHandlerImpl>(); | |||
JT808Serializer = jT808Config.GetSerializer(); | |||
} | |||
public void Processor(string TerminalNo, byte[] Data) | |||
{ | |||
if (logger.IsEnabled(LogLevel.Debug)) | |||
{ | |||
logger.LogDebug($"实现上行消息处理,{TerminalNo},{Data.ToHexString()}"); | |||
} | |||
} | |||
} | |||
} |
@@ -19,6 +19,7 @@ | |||
<ItemGroup> | |||
<ProjectReference Include="..\..\JT808.Gateway.Client\JT808.Gateway.Client.csproj" /> | |||
<ProjectReference Include="..\..\JT808.Gateway.Kafka\JT808.Gateway.Kafka.csproj" /> | |||
<ProjectReference Include="..\..\JT808.Gateway.Services\JT808.Gateway.MsgIdHandler\JT808.Gateway.MsgIdHandler.csproj" /> | |||
<ProjectReference Include="..\..\JT808.Gateway.Services\JT808.Gateway.MsgLogging\JT808.Gateway.MsgLogging.csproj" /> | |||
<ProjectReference Include="..\..\JT808.Gateway.Services\JT808.Gateway.ReplyMessage\JT808.Gateway.ReplyMessage.csproj" /> | |||
<ProjectReference Include="..\..\JT808.Gateway.Services\JT808.Gateway.SessionNotice\JT808.Gateway.SessionNotice.csproj" /> | |||
@@ -16,6 +16,7 @@ using JT808.Gateway.QueueHosting.Jobs; | |||
using JT808.Gateway.Kafka; | |||
using JT808.Gateway.WebApiClientTool; | |||
using JT808.Gateway.QueueHosting.Impl; | |||
using JT808.Gateway.MsgIdHandler; | |||
namespace JT808.Gateway.QueueHosting | |||
{ | |||
@@ -51,10 +52,12 @@ namespace JT808.Gateway.QueueHosting | |||
//添加客户端服务 | |||
.AddClientKafka() | |||
.AddMsgConsumer(hostContext.Configuration) | |||
//添加消息上行处理器 | |||
.AddMsgIdHandler<JT808UpMessageHandlerImpl>() | |||
//添加消息应答生产者 | |||
.AddMsgReplyProducer(hostContext.Configuration) | |||
//添加消息应答服务并实现消息应答处理 | |||
.AddReplyMessage<JT808ReplyMessageHandlerImpl>() | |||
.AddReplyMessage<JT808DownMessageHandlerImpl>() | |||
.Builder() | |||
//添加消息应答处理 | |||
.AddGateway(hostContext.Configuration) | |||
@@ -24,7 +24,7 @@ | |||
}, | |||
"JT808MsgConsumerConfig": { | |||
"TopicName": "JT808Msg", | |||
"GroupId": "msg-group", | |||
"GroupId": "msg-group-1", | |||
"EnableAutoCommit": true, | |||
"BootstrapServers": "127.0.0.1:9092" | |||
}, | |||
@@ -175,7 +175,7 @@ namespace JT808.Gateway.WebApiClientTool | |||
/// <returns></returns> | |||
public async ValueTask<JT808ResultDto<List<string>>> GetBlacklistAll() | |||
{ | |||
var request = new HttpRequestMessage(HttpMethod.Post, JT808GatewayConstants.JT808WebApiRouteTable.BlacklistGet); | |||
var request = new HttpRequestMessage(HttpMethod.Get, JT808GatewayConstants.JT808WebApiRouteTable.BlacklistGet); | |||
var response = await HttpClient.SendAsync(request); | |||
response.EnsureSuccessStatusCode(); | |||
var data = await response.Content.ReadAsStreamAsync(); | |||
@@ -37,6 +37,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JT808.Gateway.ServerBenchma | |||
EndProject | |||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JT808.Gateway.CleintBenchmark", "JT808.Gateway.Benchmark\JT808.Gateway.CleintBenchmark\JT808.Gateway.CleintBenchmark.csproj", "{45113CCF-2556-459F-B330-D0A5A885FC4C}" | |||
EndProject | |||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JT808.Gateway.MsgIdHandler", "JT808.Gateway.Services\JT808.Gateway.MsgIdHandler\JT808.Gateway.MsgIdHandler.csproj", "{41E5252C-CA52-453A-BBFE-CBCB58D232ED}" | |||
EndProject | |||
Global | |||
GlobalSection(SolutionConfigurationPlatforms) = preSolution | |||
Debug|Any CPU = Debug|Any CPU | |||
@@ -99,6 +101,10 @@ Global | |||
{45113CCF-2556-459F-B330-D0A5A885FC4C}.Debug|Any CPU.Build.0 = Debug|Any CPU | |||
{45113CCF-2556-459F-B330-D0A5A885FC4C}.Release|Any CPU.ActiveCfg = Release|Any CPU | |||
{45113CCF-2556-459F-B330-D0A5A885FC4C}.Release|Any CPU.Build.0 = Release|Any CPU | |||
{41E5252C-CA52-453A-BBFE-CBCB58D232ED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | |||
{41E5252C-CA52-453A-BBFE-CBCB58D232ED}.Debug|Any CPU.Build.0 = Debug|Any CPU | |||
{41E5252C-CA52-453A-BBFE-CBCB58D232ED}.Release|Any CPU.ActiveCfg = Release|Any CPU | |||
{41E5252C-CA52-453A-BBFE-CBCB58D232ED}.Release|Any CPU.Build.0 = Release|Any CPU | |||
EndGlobalSection | |||
GlobalSection(SolutionProperties) = preSolution | |||
HideSolutionNode = FALSE | |||
@@ -113,6 +119,7 @@ Global | |||
{886D0A3F-C974-442B-9820-F1C4C04EAAB6} = {3EF8490D-C993-49D8-8A3D-493B7F259D70} | |||
{8B32DDBF-F118-4216-A49A-C067F6107D0A} = {6FAEC008-93CB-4730-8C58-D31FFD342C4F} | |||
{45113CCF-2556-459F-B330-D0A5A885FC4C} = {6FAEC008-93CB-4730-8C58-D31FFD342C4F} | |||
{41E5252C-CA52-453A-BBFE-CBCB58D232ED} = {3EF8490D-C993-49D8-8A3D-493B7F259D70} | |||
EndGlobalSection | |||
GlobalSection(ExtensibilityGlobals) = postSolution | |||
SolutionGuid = {AA9303A7-6FB3-4572-88AA-3302E85330D1} | |||
@@ -1,6 +1,6 @@ | |||
<Project> | |||
<PropertyGroup> | |||
<JT808DotNettyPackageVersion>2.3.3-preview1</JT808DotNettyPackageVersion> | |||
<JT808GatewayPackageVersion>1.1.0</JT808GatewayPackageVersion> | |||
<JT808GatewayPackageVersion>1.1.1-preview1</JT808GatewayPackageVersion> | |||
</PropertyGroup> | |||
</Project> |