|
6 lat temu | |
---|---|---|
doc | 6 lat temu | |
src | 6 lat temu | |
.gitignore | 6 lat temu | |
.gitmodules | 6 lat temu | |
LICENSE | 6 lat temu | |
README.md | 6 lat temu |
基于DotNetty封装的JT808DotNetty通用消息业务处理
功能 | 说明 | 使用场景 |
---|---|---|
ISourcePackageDispatcher | 原包分发器(支持热更新、断线重连) | 需要将原数据转给其他平台 |
功能 | 说明 | 使用场景 |
---|---|---|
JT808MsgIdHandlerBase | 业务消息处理程序 | 需要自定义实现业务消息处理程序 |
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);
}
}
services.Replace(new ServiceDescriptor(typeof(JT808MsgIdHandlerBase), typeof(JT808MsgIdCustomHandler), ServiceLifetime.Singleton));
UseJT808Host()
// 默认网关端口: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();
}
基地址:http://localhost:828/jt808api/
数据格式:只支持Json格式
属性 | 数据类型 | 参数说明 |
---|---|---|
Message | string | 消息描述 |
Code | int | 状态码 |
Data | T(泛型) | 数据 |
返回Code[状态码]说明:
状态码 | 说明 |
---|---|
200 | 返回成功 |
201 | 内容为空 |
404 | 没有该服务 |
500 | 服务内部错误 |
请求地址:UnificationSend
请求方式:POST
请求参数:
属性 | 数据类型 | 参数说明 |
---|---|---|
TerminalPhoneNo | string | 设备终端号 |
Data | byte[] | JT808 byte[]数组 |
返回数据:
属性 | 数据类型 | 参数说明 |
---|---|---|
Data | bool | 是否成功 |
返回结果:
{
"Message":"",
"Code":200,
"Data":true
}
属性 | 数据类型 | 参数说明 |
---|---|---|
ChannelId | string | 通道Id |
LastActiveTime | DateTime | 最后上线时间 |
StartTime | DateTime | 上线时间 |
TerminalPhoneNo | string | 终端手机号 |
LoaclAddressIP | string | 本地ip地址 |
WebApiPort | string | WebApi端口号 |
RemoteAddressIP | string | 远程ip地址 |
请求地址:Session/GetAll
请求方式:GET
返回数据:
属性 | 数据类型 | 参数说明 |
---|---|---|
Data | List<JT808SessionInfoDto> | 实际会话信息集合 |
返回结果:
{
"Message":"",
"Code":200,
"Data":[
{
"ChannelId":"eadad23",
"LastActiveTime":"2018-11-27 20:00:00",
"StartTime":"2018-11-25 20:00:00",
"TerminalPhoneNo":"123456789012",
"LoaclAddressIP":"127.0.0.1:808",
"WebApiPort":828,
"RemoteAddressIP":"127.0.0.1:11808"
},{
"ChannelId":"eadad23",
"LastActiveTime":"2018-11-27 20:00:00",
"StartTime":"2018-11-25 20:00:00",
"TerminalPhoneNo":"123456789013",
"LoaclAddressIP":"127.0.0.1:808",
"WebApiPort":828,
"RemoteAddressIP":"127.0.0.1:11808"
}
]
}
请求地址:Session/RemoveByChannelId
请求方式:POST
请求参数:
属性 | 数据类型 | 参数说明 |
---|---|---|
channelId | string | 通道Id |
返回数据:
属性 | 数据类型 | 参数说明 |
---|---|---|
Data | bool | 是否成功 |
返回结果:
{
"Message":"",
"Code":200,
"Data":true
}
请求地址:Session/RemoveByTerminalPhoneNo
请求方式:POST
请求参数:
属性 | 数据类型 | 参数说明 |
---|---|---|
terminalPhoneNo | string | 设备终端号 |
返回数据:
属性 | 数据类型 | 参数说明 |
---|---|---|
Data | bool | 是否成功 |
返回结果:
{
"Message":"",
"Code":200,
"Data":true
}