瀏覽代碼

1.增加SIM黑名单管理及对应的客户端接口和文档

2.将原来的消息处理接口改为上下行标识
3.修改文档
4.去掉无用的类文件
tags/v2.3.3-dotnetty_v1.1.1-pipeline
SmallChi(Koike) 4 年之前
父節點
當前提交
109d8976c5
共有 29 個文件被更改,包括 341 次插入89 次删除
  1. +18
    -18
      README.md
  2. +95
    -0
      api/README_Pipeline.md
  3. +1
    -1
      publish.bat
  4. +1
    -0
      publish.gateway.bat
  5. +0
    -18
      src/JT808.Gateway.Abstractions/Enums/JT808ConsumerType.cs
  6. +7
    -1
      src/JT808.Gateway.Abstractions/Enums/JT808TransportProtocolType.cs
  7. +6
    -3
      src/JT808.Gateway.Abstractions/IJT808DownMessageHandler.cs
  8. +23
    -0
      src/JT808.Gateway.Abstractions/IJT808UpMessageHandler.cs
  9. +63
    -8
      src/JT808.Gateway.Abstractions/JT808.Gateway.Abstractions.xml
  10. +18
    -5
      src/JT808.Gateway.Abstractions/JT808MessageHandler.cs
  11. +2
    -2
      src/JT808.Gateway.Kafka/JT808MsgConsumer.cs
  12. +1
    -2
      src/JT808.Gateway.Kafka/JT808MsgReplyConsumer.cs
  13. +1
    -2
      src/JT808.Gateway.Kafka/JT808MsgReplyLoggingConsumer.cs
  14. +2
    -2
      src/JT808.Gateway.Services/JT808.Gateway.MsgIdHandler/JT808.Gateway.MsgIdHandler.csproj
  15. +3
    -3
      src/JT808.Gateway.Services/JT808.Gateway.MsgIdHandler/JT808MsgIdHandlerExtensions.cs
  16. +3
    -3
      src/JT808.Gateway.Services/JT808.Gateway.MsgIdHandler/JT808MsgIdHandlerHostedService.cs
  17. +20
    -1
      src/JT808.Gateway.Services/JT808.Gateway.ReplyMessage/JT808.Gateway.ReplyMessage.xml
  18. +6
    -3
      src/JT808.Gateway.Services/JT808.Gateway.ReplyMessage/JT808ReplyMessageExtensions.cs
  19. +12
    -2
      src/JT808.Gateway.Services/JT808.Gateway.ReplyMessage/JT808ReplyMessageHostedService.cs
  20. +4
    -4
      src/JT808.Gateway.Services/JT808.Gateway.SessionNotice/JT808.Gateway.SessionNotice.xml
  21. +4
    -4
      src/JT808.Gateway.Services/JT808.Gateway.SessionNotice/JT808SessionNoticeExtensions.cs
  22. +3
    -3
      src/JT808.Gateway.Tests/JT808.Gateway.QueueHosting/Impl/JT808DownMessageHandlerImpl.cs
  23. +33
    -0
      src/JT808.Gateway.Tests/JT808.Gateway.QueueHosting/Impl/JT808UpMessageHandlerImpl.cs
  24. +1
    -0
      src/JT808.Gateway.Tests/JT808.Gateway.QueueHosting/JT808.Gateway.QueueHosting.csproj
  25. +4
    -1
      src/JT808.Gateway.Tests/JT808.Gateway.QueueHosting/Program.cs
  26. +1
    -1
      src/JT808.Gateway.Tests/JT808.Gateway.QueueHosting/appsettings.json
  27. +1
    -1
      src/JT808.Gateway.WebApiClientTool/JT808HttpClient.cs
  28. +7
    -0
      src/JT808.Gateway.sln
  29. +1
    -1
      src/Version.props

+ 18
- 18
README.md 查看文件

@@ -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 | ![JT808.Gateway.SessionNotice](https://img.shields.io/nuget/v/JT808.Gateway.SessionNotice.svg) | ![JT808.Gateway.SessionNotice](https://img.shields.io/nuget/vpre/JT808.Gateway.SessionNotice.svg) | ![JT808.Gateway.SessionNotice](https://img.shields.io/nuget/dt/JT808.Gateway.SessionNotice.svg) |
| Install-Package JT808.Gateway.ReplyMessage | ![JT808.Gateway.ReplyMessage](https://img.shields.io/nuget/v/JT808.Gateway.ReplyMessage.svg) | ![JT808.Gateway.ReplyMessage](https://img.shields.io/nuget/vpre/JT808.Gateway.ReplyMessage.svg) | ![JT808.Gateway.ReplyMessage](https://img.shields.io/nuget/dt/JT808.Gateway.ReplyMessage.svg) |
| Install-Package JT808.Gateway.MsgLogging | ![JT808.Gateway.MsgLogging](https://img.shields.io/nuget/v/JT808.Gateway.MsgLogging.svg) | ![JT808.Gateway.MsgLogging](https://img.shields.io/nuget/vpre/JT808.Gateway.MsgLogging.svg) | ![JT808.Gateway.MsgLogging](https://img.shields.io/nuget/dt/JT808.Gateway.MsgLogging.svg) |
| Install-Package JT808.Gateway.MsgIdHandler (v1.1.0新版已移出) | ![JT808.Gateway.MsgIdHandler](https://img.shields.io/nuget/v/JT808.Gateway.MsgIdHandler.svg) | ![JT808.Gateway.MsgIdHandler](https://img.shields.io/nuget/vpre/JT808.Gateway.MsgIdHandler.svg) | ![JT808.Gateway.MsgIdHandler](https://img.shields.io/nuget/dt/JT808.Gateway.MsgIdHandler.svg) |
| Install-Package JT808.Gateway.MsgIdHandler | ![JT808.Gateway.MsgIdHandler](https://img.shields.io/nuget/v/JT808.Gateway.MsgIdHandler.svg) | ![JT808.Gateway.MsgIdHandler](https://img.shields.io/nuget/vpre/JT808.Gateway.MsgIdHandler.svg) | ![JT808.Gateway.MsgIdHandler](https://img.shields.io/nuget/dt/JT808.Gateway.MsgIdHandler.svg) |
| Install-Package JT808.Gateway.Traffic (v1.1.0新版已移出) | ![JT808.Gateway.Traffic](https://img.shields.io/nuget/v/JT808.Gateway.Traffic.svg) | ![JT808.Gateway.Traffic](https://img.shields.io/nuget/vpre/JT808.Gateway.Traffic.svg) | ![JT808.Gateway.Traffic](https://img.shields.io/nuget/dt/JT808.Gateway.Traffic.svg) |

## 基于DotNetty

### DotNetty的NuGet安装

| Package Name | Version | Downloads |
| ----------------------------------------------- | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------- |
| Install-Package JT808.DotNetty.Abstractions | ![JT808.DotNetty.Abstractions](https://img.shields.io/nuget/v/JT808.DotNetty.Abstractions.svg) | ![JT808.DotNetty.Abstractions](https://img.shields.io/nuget/dt/JT808.DotNetty.Abstractions.svg) |
| Install-Package JT808.DotNetty.Core | ![JT808.DotNetty.Core](https://img.shields.io/nuget/v/JT808.DotNetty.Core.svg) | ![JT808.DotNetty.Core](https://img.shields.io/nuget/dt/JT808.DotNetty.Core.svg) |
| Install-Package JT808.DotNetty.Tcp | ![JT808.DotNetty.Tcp](https://img.shields.io/nuget/v/JT808.DotNetty.Tcp.svg) | ![JT808.DotNetty.Tcp](https://img.shields.io/nuget/dt/JT808.DotNetty.Tcp.svg) |
| Install-Package JT808.DotNetty.Udp | ![JT808.DotNetty.Udp](https://img.shields.io/nuget/v/JT808.DotNetty.Udp.svg) | ![JT808.DotNetty.Udp](https://img.shields.io/nuget/dt/JT808.DotNetty.Udp.svg) |
| Install-Package JT808.DotNetty.WebApi | ![JT808.DotNetty.WebApi](https://img.shields.io/nuget/v/JT808.DotNetty.WebApi.svg) | ![JT808.DotNetty.WebApi](https://img.shields.io/nuget/dt/JT808.DotNetty.WebApi.svg) |
| Install-Package JT808.DotNetty.WebApiClientTool | ![JT808.DotNetty.WebApiClientTool](https://img.shields.io/nuget/v/JT808.DotNetty.WebApiClientTool.svg) | ![JT808.DotNetty.WebApiClientTool](https://img.shields.io/nuget/dt/JT808.DotNetty.WebApiClientTool.svg) |
| Install-Package JT808.DotNetty.Client | ![JT808.DotNetty.Client](https://img.shields.io/nuget/v/JT808.DotNetty.Client.svg) | ![JT808.DotNetty.Client](https://img.shields.io/nuget/dt/JT808.DotNetty.Client.svg) |
| Install-Package JT808.DotNetty.Transmit | ![JT808.DotNetty.Transmit](https://img.shields.io/nuget/v/JT808.DotNetty.Transmit.svg) | ![JT808.DotNetty.Transmit](https://img.shields.io/nuget/dt/JT808.DotNetty.Transmit.svg) |
| Install-Package JT808.DotNetty.Traffic | ![JT808.DotNetty.Traffic](https://img.shields.io/nuget/v/JT808.DotNetty.Traffic.svg) | ![JT808.DotNetty.Traffic](https://img.shields.io/nuget/dt/JT808.DotNetty.Traffic.svg) |
| Install-Package JT808.DotNetty.SessionNotice | ![JT808.DotNetty.SessionNotice](https://img.shields.io/nuget/v/JT808.DotNetty.SessionNotice.svg) | ![JT808.DotNetty.SessionNotice](https://img.shields.io/nuget/dt/JT808.DotNetty.SessionNotice.svg) |
| Install-Package JT808.DotNetty.ReplyMessage | ![JT808.DotNetty.ReplyMessage](https://img.shields.io/nuget/v/JT808.DotNetty.ReplyMessage.svg) | ![JT808.DotNetty.ReplyMessage](https://img.shields.io/nuget/dt/JT808.DotNetty.ReplyMessage.svg) |
| Install-Package JT808.DotNetty.MsgLogging | ![JT808.DotNetty.MsgLogging](https://img.shields.io/nuget/v/JT808.DotNetty.MsgLogging.svg) | ![JT808.DotNetty.MsgLogging](https://img.shields.io/nuget/dt/JT808.DotNetty.MsgLogging.svg) |
| Install-Package JT808.DotNetty.MsgIdHandler | ![JT808.DotNetty.MsgIdHandler](https://img.shields.io/nuget/v/JT808.DotNetty.MsgIdHandler.svg) | ![JT808.DotNetty.MsgIdHandler](https://img.shields.io/nuget/dt/JT808.DotNetty.MsgIdHandler.svg) |
| Install-Package JT808.DotNetty.Kafka | ![JT808.DotNetty.Kafka](https://img.shields.io/nuget/v/JT808.DotNetty.Kafka.svg) | ![JT808.DotNetty.Kafka](https://img.shields.io/nuget/dt/JT808.DotNetty.Kafka.svg) |
| Package Name| Version |Preview Version | Downloads|
| --- | --- | ---| ---|
| Install-Package JT808.DotNetty.Abstractions | ![JT808.DotNetty.Abstractions](https://img.shields.io/nuget/v/JT808.DotNetty.Abstractions.svg)| ![JT808.DotNetty.Abstractions](https://img.shields.io/nuget/vpre/JT808.DotNetty.Abstractions.svg) | ![JT808.DotNetty.Abstractions](https://img.shields.io/nuget/dt/JT808.DotNetty.Abstractions.svg) |
| Install-Package JT808.DotNetty.Core | ![JT808.DotNetty.Core](https://img.shields.io/nuget/v/JT808.DotNetty.Core.svg) | ![JT808.DotNetty.Core](https://img.shields.io/nuget/vpre/JT808.DotNetty.Core.svg) | ![JT808.DotNetty.Core](https://img.shields.io/nuget/dt/JT808.DotNetty.Core.svg) |
| Install-Package JT808.DotNetty.Tcp | ![JT808.DotNetty.Tcp](https://img.shields.io/nuget/v/JT808.DotNetty.Tcp.svg) | ![JT808.DotNetty.Tcp](https://img.shields.io/nuget/vpre/JT808.DotNetty.Tcp.svg) | ![JT808.DotNetty.Tcp](https://img.shields.io/nuget/dt/JT808.DotNetty.Tcp.svg) |
| Install-Package JT808.DotNetty.Udp | ![JT808.DotNetty.Udp](https://img.shields.io/nuget/v/JT808.DotNetty.Udp.svg) | ![JT808.DotNetty.Udp](https://img.shields.io/nuget/vpre/JT808.DotNetty.Udp.svg) | ![JT808.DotNetty.Udp](https://img.shields.io/nuget/dt/JT808.DotNetty.Udp.svg) |
| Install-Package JT808.DotNetty.WebApi | ![JT808.DotNetty.WebApi](https://img.shields.io/nuget/v/JT808.DotNetty.WebApi.svg) | ![JT808.DotNetty.WebApi](https://img.shields.io/nuget/vpre/JT808.DotNetty.WebApi.svg) | ![JT808.DotNetty.WebApi](https://img.shields.io/nuget/dt/JT808.DotNetty.WebApi.svg) |
| Install-Package JT808.DotNetty.WebApiClientTool | ![JT808.DotNetty.WebApiClientTool](https://img.shields.io/nuget/v/JT808.DotNetty.WebApiClientTool.svg) | ![JT808.DotNetty.WebApiClientTool](https://img.shields.io/nuget/vpre/JT808.DotNetty.WebApiClientTool.svg) | ![JT808.DotNetty.WebApiClientTool](https://img.shields.io/nuget/dt/JT808.DotNetty.WebApiClientTool.svg) |
| Install-Package JT808.DotNetty.Client | ![JT808.DotNetty.Client](https://img.shields.io/nuget/v/JT808.DotNetty.Client.svg) | ![JT808.DotNetty.Client](https://img.shields.io/nuget/vpre/JT808.DotNetty.Client.svg) | ![JT808.DotNetty.Client](https://img.shields.io/nuget/dt/JT808.DotNetty.Client.svg) |
| Install-Package JT808.DotNetty.Transmit | ![JT808.DotNetty.Transmit](https://img.shields.io/nuget/v/JT808.DotNetty.Transmit.svg) | ![JT808.DotNetty.Transmit](https://img.shields.io/nuget/vpre/JT808.DotNetty.Transmit.svg) | ![JT808.DotNetty.Transmit](https://img.shields.io/nuget/dt/JT808.DotNetty.Transmit.svg) |
| Install-Package JT808.DotNetty.Traffic | ![JT808.DotNetty.Traffic](https://img.shields.io/nuget/v/JT808.DotNetty.Traffic.svg) | ![JT808.DotNetty.Traffic](https://img.shields.io/nuget/vpre/JT808.DotNetty.Traffic.svg) | ![JT808.DotNetty.Traffic](https://img.shields.io/nuget/dt/JT808.DotNetty.Traffic.svg) |
| Install-Package JT808.DotNetty.SessionNotice | ![JT808.DotNetty.SessionNotice](https://img.shields.io/nuget/v/JT808.DotNetty.SessionNotice.svg)| ![JT808.DotNetty.SessionNotice](https://img.shields.io/nuget/vpre/JT808.DotNetty.SessionNotice.svg) | ![JT808.DotNetty.SessionNotice](https://img.shields.io/nuget/dt/JT808.DotNetty.SessionNotice.svg) |
| Install-Package JT808.DotNetty.ReplyMessage | ![JT808.DotNetty.ReplyMessage](https://img.shields.io/nuget/v/JT808.DotNetty.ReplyMessage.svg) | ![JT808.DotNetty.ReplyMessage](https://img.shields.io/nuget/vpre/JT808.DotNetty.ReplyMessage.svg) | ![JT808.DotNetty.ReplyMessage](https://img.shields.io/nuget/dt/JT808.DotNetty.ReplyMessage.svg) |
| Install-Package JT808.DotNetty.MsgLogging | ![JT808.DotNetty.MsgLogging](https://img.shields.io/nuget/v/JT808.DotNetty.MsgLogging.svg) | ![JT808.DotNetty.Abstractions](https://img.shields.io/nuget/vpre/JT808.DotNetty.MsgLogging.svg) | ![JT808.DotNetty.MsgLogging](https://img.shields.io/nuget/dt/JT808.DotNetty.MsgLogging.svg) || ![JT808.DotNetty.MsgLogging](https://img.shields.io/nuget/vpre/JT808.DotNetty.MsgLogging.svg)
| Install-Package JT808.DotNetty.MsgIdHandler | ![JT808.DotNetty.MsgIdHandler](https://img.shields.io/nuget/v/JT808.DotNetty.MsgIdHandler.svg) | ![JT808.DotNetty.MsgIdHandler](https://img.shields.io/nuget/vpre/JT808.DotNetty.MsgIdHandler.svg) | ![JT808.DotNetty.MsgIdHandler](https://img.shields.io/nuget/dt/JT808.DotNetty.MsgIdHandler.svg) |
| Install-Package JT808.DotNetty.Kafka | ![JT808.DotNetty.Kafka](https://img.shields.io/nuget/v/JT808.DotNetty.Kafka.svg) | ![JT808.DotNetty.Kafka](https://img.shields.io/nuget/vpre/JT808.DotNetty.Kafka.svg) | ![JT808.DotNetty.Kafka](https://img.shields.io/nuget/dt/JT808.DotNetty.Kafka.svg) | ![JT808.DotNetty.Kafka](https://img.shields.io/nuget/vpre/JT808.DotNetty.Kafka.svg) |

## 举个栗子



+ 95
- 0
api/README_Pipeline.md 查看文件

@@ -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"
]
}
```

+ 1
- 1
publish.bat 查看文件

@@ -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


+ 1
- 0
publish.gateway.bat 查看文件

@@ -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

+ 0
- 18
src/JT808.Gateway.Abstractions/Enums/JT808ConsumerType.cs 查看文件

@@ -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,
}
}

+ 7
- 1
src/JT808.Gateway.Abstractions/Enums/JT808TransportProtocolType.cs 查看文件

@@ -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
}
}

src/JT808.Gateway.Abstractions/IJT808ReplyMessageHandler.cs → src/JT808.Gateway.Abstractions/IJT808DownMessageHandler.cs 查看文件

@@ -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);
}

+ 23
- 0
src/JT808.Gateway.Abstractions/IJT808UpMessageHandler.cs 查看文件

@@ -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);
}
}

+ 63
- 8
src/JT808.Gateway.Abstractions/JT808.Gateway.Abstractions.xml 查看文件

@@ -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>
消息处理


+ 18
- 5
src/JT808.Gateway.Abstractions/JT808MessageHandler.cs 查看文件

@@ -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;


+ 2
- 2
src/JT808.Gateway.Kafka/JT808MsgConsumer.cs 查看文件

@@ -53,9 +53,9 @@ namespace JT808.Gateway.Kafka
{
logger.LogError(ex, TopicName);
}
catch (OperationCanceledException ex)
catch (OperationCanceledException)
{
logger.LogError(ex, TopicName);
}
catch (Exception ex)
{


+ 1
- 2
src/JT808.Gateway.Kafka/JT808MsgReplyConsumer.cs 查看文件

@@ -53,9 +53,8 @@ namespace JT808.Gateway.Kafka
{
logger.LogError(ex, TopicName);
}
catch (OperationCanceledException ex)
catch (OperationCanceledException)
{
logger.LogError(ex, TopicName);
}
catch (Exception ex)
{


+ 1
- 2
src/JT808.Gateway.Kafka/JT808MsgReplyLoggingConsumer.cs 查看文件

@@ -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
- 2
src/JT808.Gateway.Services/JT808.Gateway.MsgIdHandler/JT808.Gateway.MsgIdHandler.csproj 查看文件

@@ -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>


+ 3
- 3
src/JT808.Gateway.Services/JT808.Gateway.MsgIdHandler/JT808MsgIdHandlerExtensions.cs 查看文件

@@ -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;
}


+ 3
- 3
src/JT808.Gateway.Services/JT808.Gateway.MsgIdHandler/JT808MsgIdHandlerHostedService.cs 查看文件

@@ -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;
}



+ 20
- 1
src/JT808.Gateway.Services/JT808.Gateway.ReplyMessage/JT808.Gateway.ReplyMessage.xml 查看文件

@@ -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>

+ 6
- 3
src/JT808.Gateway.Services/JT808.Gateway.ReplyMessage/JT808ReplyMessageExtensions.cs 查看文件

@@ -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;
}


+ 12
- 2
src/JT808.Gateway.Services/JT808.Gateway.ReplyMessage/JT808ReplyMessageHostedService.cs 查看文件

@@ -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)
{


+ 4
- 4
src/JT808.Gateway.Services/JT808.Gateway.SessionNotice/JT808.Gateway.SessionNotice.xml 查看文件

@@ -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>


+ 4
- 4
src/JT808.Gateway.Services/JT808.Gateway.SessionNotice/JT808SessionNoticeExtensions.cs 查看文件

@@ -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>


src/JT808.Gateway.Tests/JT808.Gateway.QueueHosting/Impl/JT808ReplyMessageHandlerImpl.cs → src/JT808.Gateway.Tests/JT808.Gateway.QueueHosting/Impl/JT808DownMessageHandlerImpl.cs 查看文件

@@ -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();
}


+ 33
- 0
src/JT808.Gateway.Tests/JT808.Gateway.QueueHosting/Impl/JT808UpMessageHandlerImpl.cs 查看文件

@@ -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()}");
}
}
}
}

+ 1
- 0
src/JT808.Gateway.Tests/JT808.Gateway.QueueHosting/JT808.Gateway.QueueHosting.csproj 查看文件

@@ -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" />


+ 4
- 1
src/JT808.Gateway.Tests/JT808.Gateway.QueueHosting/Program.cs 查看文件

@@ -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)


+ 1
- 1
src/JT808.Gateway.Tests/JT808.Gateway.QueueHosting/appsettings.json 查看文件

@@ -24,7 +24,7 @@
},
"JT808MsgConsumerConfig": {
"TopicName": "JT808Msg",
"GroupId": "msg-group",
"GroupId": "msg-group-1",
"EnableAutoCommit": true,
"BootstrapServers": "127.0.0.1:9092"
},


+ 1
- 1
src/JT808.Gateway.WebApiClientTool/JT808HttpClient.cs 查看文件

@@ -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();


+ 7
- 0
src/JT808.Gateway.sln 查看文件

@@ -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
- 1
src/Version.props 查看文件

@@ -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>

Loading…
取消
儲存