搬砖搬了快四年呐,果然很快啊~~前几年都在与Web服务打交道,突然间公司要搞软硬结合,需要有个平台,这下好吧。。。公司原先有个老平台,窃喜之下打开老平台一看,好复杂,一脸懵逼的说。。。但是慢慢的研究,原来这一坨屎的代码是写的那么优美,那么生动。但是,老平台存在的问题有耦合度高、扩展性差、维护难度大,这才让我有业余时间重新自己瞎整的念头。
- 跨平台
- 借助.NET Core模块化的思想
- 分久必合,合久必分的服务化思想
- 站在巨人的肩膀上搬砖
功能 | 说明 | 完成情况 |
---|---|---|
GPS.Gateway.JT808SuperSocketServer | 使用SuperSocket实现 | √ |
GPS.JT808NettyServer | 使用DotNetty实现 | √ |
功能 | 说明 | 完成情况 |
---|---|---|
IdleStateHandler(系统自带) | 心跳机制 | √ |
JT808ConnectionHandler | JT808(超时策略、ip白名单) | √ |
DelimiterBasedFrameDecoder(系统自带) | JT808消息边界(防止粘包、半包) | √ |
JT808DecodeHandler | JT808解码器 | √ |
JT808ServiceHandler | JT808业务处理 | √ |
功能 | 说明 | 完成情况 |
---|---|---|
GPS.JT808PubSubToKafka | 实现kafka发布/订阅 | 小部分完成 |
GPS.JT808PubSubToRabbitMQ | 实现RabbitMQ发布/订阅 | 小部分完成 |
注意:MQ的选择适平台设备数量而定,选择kafka的原因是平台需要承载10万台设备。
功能 | 说明 | 完成情况 |
---|---|---|
JT808_UnificationSend | 统一下发设备消息 | √ |
JT808_0x0200 | 位置信息汇报 | √ |
JT808_DeviceMonitoringDispatcher | 设备监控分发器 | √ |
JT808_UnificationPushToWebSocket | 统一推送WebSocket | √ |
功能 | 说明 | 完成情况 |
---|---|---|
JT808_UnificationSend | 统一下发设备消息 | √ |
JT808_0x0200 | 位置信息汇报 | √ |
功能 | 说明 | 使用场景 |
---|---|---|
IDeviceMonitoringDispatcher | 设备监控(点名)分发器 | 后台需要监控某一辆车的所有消息 |
ISourcePackageDispatcher | 原包分发器 | 需要将源数据转给其他平台 |
功能 | 实现方式 | 备注 |
---|---|---|
GPS.JT808DeviceMonitoringDispatcher | 通过kafka实现 | 可选择合适的方式实现 |
GPS.JT808SourcePackageDispatcher | 通过kafka实现 | 可选择合适的方式实现 |
GPS.JT808SampleDeviceMonitoring | 简单设备点名监控打印原数据 | GPS.JT808DeviceMonitoringDispatcher 消费者 |
推送平台:Web平台、App、IOS、及微信小程序。【注意:正式请使用HTTPS】
推送客户端demo:
功能 | 说明 | 完成情况 |
---|---|---|
alarm.html demo | js | √ |
index_vue.html demo | vue | √ |
推送场景:
功能 | 说明 | 完成情况 |
---|---|---|
最新定位数据 | - | × |
围栏报警 | - | × |
胎压报警 | - | × |
疲劳驾驶报警 | - | × |
超速报警 | - | × |
急加速报警 | - | × |
急减速报警 | - | × |
急转弯报警 | - | × |
功能 | 说明 |
---|---|
GPS.GrpcProtocol | 消息协议 |
GPS.GrpcServiceBase | 消息接口服务 |
不同平台(Web平台、App、IOS、及微信小程序)请求认证服务器。
项目 | 说明 | 完成情况 |
---|---|---|
GenerateToken | 颁发令牌 | √ |
VerifyToken | 认证令牌 | √ |
RefreshToken | 刷新令牌 | √ |