|
6 anni fa | |
---|---|---|
doc | 6 anni fa | |
src | 6 anni fa | |
.gitignore | 6 anni fa | |
.gitmodules | 6 anni fa | |
LICENSE | 6 anni fa | |
README.md | 6 anni fa |
基于DotNetty封装的JT808DotNetty专注消息业务处理
Package Name | Version | Downloads |
---|---|---|
Install-Package JT808DotNetty |
功能 | 说明 | 使用场景 |
---|---|---|
ISourcePackageDispatcher | 原包分发器(支持热更新、断线重连) | 需要将原数据转给其他平台 |
功能 | 说明 | 使用场景 |
---|---|---|
JT808MsgIdHandlerBase | 业务消息处理程序 | 需要自定义实现业务消息处理程序 |
using JT808.DotNetty;
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 | 终端手机号 |
请求地址:Session/GetRealLinkCount
请求方式:GET
返回数据:
属性 | 数据类型 | 参数说明 |
---|---|---|
Data | int | 实际连接数 |
返回结果:
{
"Message":"",
"Code":200,
"Data":10
}
请求地址:Session/GetRelevanceLinkCount
请求方式:GET
返回数据:
属性 | 数据类型 | 参数说明 |
---|---|---|
Data | int | 设备相关连的连接数 |
返回结果:
{
"Message":"",
"Code":200,
"Data":10
}
请求地址:Session/GetRealAll
请求方式: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"
},{
"ChannelId":"eadad23",
"LastActiveTime":"2018-11-27 20:00:00",
"StartTime":"2018-11-25 20:00:00",
"TerminalPhoneNo":"123456789013"
}
]
}
请求地址:Session/GetRelevanceAll
请求方式:
返回数据:
属性 | 数据类型 | 参数说明 |
---|---|---|
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"
}, {
"ChannelId":"eadad24",
"LastActiveTime":"2018-11-26 20:00:00",
"StartTime":"2018-11-22 20:00:00",
"TerminalPhoneNo":"123456789013"
}
]
}
请求地址: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
}
请求地址:Session/GetByChannelId
请求方式:POST
请求参数:
属性 | 数据类型 | 参数说明 |
---|---|---|
channelId | string | 通道Id |
返回数据:
属性 | 数据类型 | 参数说明 |
---|---|---|
Data | JT808SessionInfoDto | 会话信息对象 |
返回结果:
{
"Message":"",
"Code":200,
"Data":{
"ChannelId":"eadad24",
"LastActiveTime":"2018-11-26 20:00:00",
"StartTime":"2018-11-22 20:00:00",
"TerminalPhoneNo":"123456789013"
}
}
请求地址:Session/GetByTerminalPhoneNo
请求方式:POST
请求参数:
属性 | 数据类型 | 参数说明 |
---|---|---|
terminalPhoneNo | string | 设备终端号 |
返回数据:
属性 | 数据类型 | 参数说明 |
---|---|---|
Data | JT808SessionInfoDto | 会话信息对象 |
返回结果:
{
"Message":"",
"Code":200,
"Data":{
"ChannelId":"eadad24",
"LastActiveTime":"2018-11-26 20:00:00",
"StartTime":"2018-11-22 20:00:00",
"TerminalPhoneNo":"123456789013"
}
}