JT808.Gateway.Kafka 1.1.8-preview6

This is a prerelease version of JT808.Gateway.Kafka.
dotnet add package JT808.Gateway.Kafka --version 1.1.8-preview6                
NuGet\Install-Package JT808.Gateway.Kafka -Version 1.1.8-preview6                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="JT808.Gateway.Kafka" Version="1.1.8-preview6" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add JT808.Gateway.Kafka --version 1.1.8-preview6                
#r "nuget: JT808.Gateway.Kafka, 1.1.8-preview6"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install JT808.Gateway.Kafka as a Cake Addin
#addin nuget:?package=JT808.Gateway.Kafka&version=1.1.8-preview6&prerelease

// Install JT808.Gateway.Kafka as a Cake Tool
#tool nuget:?package=JT808.Gateway.Kafka&version=1.1.8-preview6&prerelease                

JT808Gateway

JT808Pipeline支持TCP/UDP通用消息业务处理

了解JT808协议进这边

了解JT809协议进这边

了解JT1078协议进这边

了解JTNE协议进这边

玩一玩压力测试

MIT Licence.NET Core

新网关的优势

  1. 跨平台
  2. 借助 .NET Core模块化的思想
  3. 单机同时一万辆车在线不是梦(真有一万辆车那都很吃香了<( ̄3 ̄)> <( ̄3 ̄)> <( ̄3 ̄)> )
  4. 简单易上手

设计模型

design_model

集成接口功能

接口名称 接口说明 使用场景
IJT808SessionProducer 会话通知(在线/离线)数据生产接口 有些超长待机的设备,不会实时保持连接,那么通过平台下发的命令是无法到达的,这时候就需要设备一上线,就即时通知服务去处理,然后在即时的下发消息到设备。
IJT808SessionConsumer 会话通知(在线/离线)数据消费接口 -
IJT808MsgProducer 数据生产接口 网关将接收到的数据发送到队列
IJT808MsgConsumer 数据消费接口 将数据进行对应的消息业务处理(例:设备流量统计、第三方平台数据转发、消息日志等)
IJT808MsgReplyProducer 应答数据生产接口 将生产的数据解析为对应的消息Id应答发送到队列
IJT808MsgReplyConsumer 应答数据消费接口 将接收到的应答数据下发给设备
IJT808MsgReplyLoggingProducer 网关应答数据日志生产接口 将网关能解析到直接能下发的数据发送到队列
IJT808MsgReplyLoggingConsumer 网关应答数据日志消费接口 将网关能解析到直接能下发的数据发送到日志系统

使用物联网卡通过udp下发指令时,存储的那个socket地址端口,有效期非常短,不速度快点下发,那个socket地址端口就可能映射到别的对应卡去了,所以此处采用跟随设备消息下发指令。

基于WebApi的消息业务处理程序

通过继承JT808.Gateway.Handlers.JT808MsgIdDefaultWebApiHandler去实现自定义的WebApi接口服务。

接口文档

基于Pipeline

Pipeline分为两种方式使用,一种是使用队列的方式,一种是网关集成的方式。

使用方式 特性 备注
使用队列 网关不需要重启,相当于透传数据,设备上来的数据直接入队列,通过服务去处理消息。 设备多的可以这样搞,这样关注点在业务上面。
使用网关集成 网关需要根据消息业务的变化去处理,也就意味着更改业务,需要重启网关,但是上手简单。 设备少的,开发能力弱的,允许设备丢点数据的。

Pipeline的NuGet安装

Package Name Version Preview Version Downloads
Install-Package JT808.Gateway.Abstractions JT808.Gateway.Abstractions JT808.Gateway.Abstractions JT808.Gateway.Abstractions JT808.Gateway.Abstractions
Install-Package JT808.Gateway JT808.Gateway JT808.Gateway JT808.Gateway
Install-Package JT808.Gateway.WebApiClientTool JT808.Gateway.WebApiClientTool JT808.Gateway.WebApiClientTool JT808.Gateway.WebApiClientTool
Install-Package JT808.Gateway.Client JT808.Gateway.Client JT808.Gateway.Client JT808.Gateway.Client
Install-Package JT808.Gateway.Kafka JT808.Gateway.Kafka JT808.Gateway.Kafka JT808.Gateway.MsgIdHandler

举个栗子

Pipeline

使用网关集成方式

1.打开/simples/JT808.Simples.sln项目进行还原编译生成

2.进入JT808.Gateway.SimpleServer项目下的Debug目录运行服务端

3.进入JT808.Gateway.SimpleClient项目下的Debug目录运行客户端

如图所示: demo3

使用队列方式

1.打开/simples/JT808.Simples.sln项目进行还原编译生成

2.JT808.Gateway.SimpleQueueServer项目下的Debug目录运行服务端

3.JT808.Gateway.SimpleQueueService项目下的Debug目录运行消息处理服务

4.JT808.Gateway.SimpleQueueNotification项目下的Debug目录运行WebSocket服务 从浏览器中打开localhost:5000查看数据

5.进入JT808.Gateway.SimpleClient项目下的Debug目录运行客户端

注意:需要安装kafka和zookeeper

如图所示: demo4

常见问题

单端口兼容多协议虽然可以实现,但是还是不建议这么做,建议最好是用端口分开,避免不必要的麻烦

Product Compatible and additional computed target framework versions.
.NET net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.1.8-preview6 236 6/6/2023
1.1.8-preview5 112 5/3/2023
1.1.8-preview4 134 12/18/2022
1.1.8-preview3 133 11/26/2022
1.1.8-preview2 117 9/3/2022
1.1.8-preview1 139 5/25/2022
1.1.7 1,070 3/25/2022
1.1.6 435 1/27/2022
1.1.5 320 11/19/2021
1.1.4 326 9/30/2021
1.1.3 358 8/31/2021
1.1.2 406 7/30/2021
1.1.1 398 6/29/2021
1.1.1-preview4 214 5/24/2021
1.1.1-preview3 213 4/30/2021
1.1.1-preview2 245 4/22/2021
1.1.1-preview1 206 3/11/2021
1.1.0 406 2/18/2021
1.1.0-preview6 306 1/4/2021
1.1.0-preview5 260 12/22/2020
1.1.0-preview4 311 12/1/2020
1.1.0-preview3 287 11/30/2020
1.1.0-preview2 244 11/29/2020
1.1.0-preview1 269 11/28/2020
1.0.2-preview3 269 10/29/2020
1.0.2-preview2 265 10/26/2020
1.0.2-preview1 319 9/14/2020
1.0.1 880 5/14/2020
1.0.0 539 3/2/2020
1.0.0-preview9 357 2/26/2020
1.0.0-preview8 399 2/14/2020
1.0.0-preview7 345 2/5/2020
1.0.0-preview6 356 2/4/2020
1.0.0-preview5 350 2/2/2020
1.0.0-preview4 383 1/30/2020
1.0.0-preview3 435 12/26/2019
1.0.0-preview2 365 12/23/2019
1.0.0-preview1 375 10/24/2019

基于Kafka的JT808消息发布与订阅