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