Pārlūkot izejas kodu

修改文档

tags/v1.0.0
SmallChi pirms 6 gadiem
vecāks
revīzija
4d2538ebdc
2 mainītis faili ar 2 papildinājumiem un 84 dzēšanām
  1. +2
    -80
      README.md
  2. +0
    -4
      src/JT808.DotNetty.Tests/JT808.DotNetty.Udp.Test/JT808SessionServiceTest.cs

+ 2
- 80
README.md Parādīt failu

@@ -1,6 +1,6 @@
# JT808DotNetty

基于DotNetty封装的JT808DotNetty通用消息业务处理
基于DotNetty封装的JT808DotNetty支持TCP/UDP通用消息业务处理

[了解JT808协议进这边](https://github.com/SmallChi/JT808)

@@ -25,92 +25,14 @@

### 1.集成原包分发器

| 功能 | 说明 | 使用场景 |
|:-------:|:-------:|:-------:|
| ISourcePackageDispatcher | 原包分发器(支持热更新、断线重连) | 需要将原数据转给其他平台 |

### 2.集成WebApi服务器

[WebApi接口服务](https://github.com/SmallChi/JT808DotNetty/blob/master/api/README.md)

### 3.集成会话通知(在线/离线)

| 功能 | 说明 |
|:-------:|:-------:|
| JT808SessionPublishingRedisImpl | 基于Redis的发布通知 |
| JT808SessionPublishingEmptyImpl | 默认空实现 |

使用场景:有些超长待机的设备,不会实时保持连接,那么通过平台下发的命令是无法到达的,这时候就需要设备一上线,就即时通知服务去处理,然后在即时的下发消息到设备。

> 只要实现IJT808SessionPublishing接口的任意一款MQ都能实现该功能。

### 4.集成业务消息处理程序

| 功能 | 说明 | 使用场景 |
|:-------:|:-------:|:-------:|
| JT808MsgIdHandlerBase | 业务消息处理程序 | 需要自定义实现业务消息处理程序 |

### 举个栗子1

#### 4.1.实现业务消息处理程序JT808MsgIdHandlerBase

```business Imp
public class JT808MsgIdCustomHandler : JT808MsgIdHandlerBase
{
private readonly ILogger<JT808MsgIdCustomHandler> logger;

public JT808MsgIdCustomHandler(ILoggerFactory loggerFactory,
JT808SessionManager sessionManager) : base(sessionManager)
{
logger = loggerFactory.CreateLogger<JT808MsgIdCustomHandler>();
}

public override JT808Response Msg0x0102(JT808Request request)
{
logger.LogDebug("Msg0x0102");
return base.Msg0x0102(request);
}
}

```

#### 4.2.自定义业务消息处理程序替换默认实现

``` handler
services.Replace(new ServiceDescriptor(typeof(JT808MsgIdHandlerBase), typeof(JT808MsgIdCustomHandler), ServiceLifetime.Singleton));
```

#### 4.3.使用JT808 Host

``` host
UseJT808Host()
```

#### 4.4.完整示例

``` demo
// 默认网关端口:808
// 默认webapi端口:828
static async Task Main(string[] args)
{
var serverHostBuilder = new HostBuilder()
.ConfigureAppConfiguration((hostingContext, config) =>
{
config.SetBasePath(AppDomain.CurrentDomain.BaseDirectory);
config.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
})
.ConfigureLogging((context, logging) =>
{
logging.AddConsole();
logging.SetMinimumLevel(LogLevel.Error);
})
.ConfigureServices((hostContext, services) =>
{
services.AddSingleton<ILoggerFactory, LoggerFactory>();
services.AddSingleton(typeof(ILogger<>), typeof(Logger<>));
services.Replace(new ServiceDescriptor(typeof(JT808MsgIdHandlerBase), typeof(JT808MsgIdCustomHandler), ServiceLifetime.Singleton));
})
.UseJT808Host();
await serverHostBuilder.RunConsoleAsync();
}
```
### 4.集成业务消息处理程序

+ 0
- 4
src/JT808.DotNetty.Tests/JT808.DotNetty.Udp.Test/JT808SessionServiceTest.cs Parādīt failu

@@ -33,10 +33,6 @@ namespace JT808.DotNetty.Udp.Test

public JT808SessionServiceTest()
{
JT808SimpleUdpClient SimpleUdpClient11 = new JT808SimpleUdpClient(new IPEndPoint(IPAddress.Parse("157.255.57.82"), 12818));

JT808Package jT808Package11 = JT808.Protocol.Enums.JT808MsgId.终端心跳.Create("123456789001");
SimpleUdpClient11.WriteAsync(JT808Serializer.Serialize(jT808Package11));
SimpleUdpClient1 = new JT808SimpleUdpClient(endPoint);
SimpleUdpClient2 = new JT808SimpleUdpClient(endPoint);
SimpleUdpClient3 = new JT808SimpleUdpClient(endPoint);


Notiek ielāde…
Atcelt
Saglabāt