快速落地 JT/T 808 服务端:jt-framework
一、项目名称
jt-framework
一句话简介:基于 Spring Boot 的 JT/T 808(并扩展 JT/T 1078、附件服务器、Dashboard)服务端框架,提供 starter + 示例工程,适合直接集成到你的车联网平台后端。
适用场景:
- • 车联网平台对接终端:JT/T 808 登录/定位/心跳/下发指令
- • 音视频与实时流:JT/T 1078 相关链路(beta)
- • 需要可观测/运维入口:组件统计、请求处理器列表、Dashboard(beta)
图片
二、开源协议
- • 以仓库 LICENSE 为准
三、功能概述(核心卖点)
1)Spring Boot Starter(boot2/boot3 双线)
- • 是什么:把 JT/T 808/1078 能力做成 starter,直接依赖即可启动服务端,不需要从零搭 Netty pipeline。
- • 怎么做:
- • Spring Boot 2.x:
jt-808-server-spring-boot-starter-boot2(JDK 8+) - • Spring Boot 3.x:
jt-808-server-spring-boot-starter(JDK 17+) - • 注意事项(可选):boot2/boot3 的 JDK 与 Spring Boot 版本有硬约束,选型先看 README 的兼容矩阵。
2)注解驱动的消息处理
- • 是什么:用注解/Handler 的方式组织业务处理逻辑,减少“switch case + 手写路由”的维护成本。
- • 怎么做:示例工程集中在
samples/**、demos/**,可以直接照着写自己的 Handler。 - • 注意事项(可选):建议把“协议解析/校验/分包重组”留在框架层,把“业务入库/告警/策略”放在你的业务模块。
3)分包/下发/加解密等协议常见难点覆盖
- • 是什么:覆盖 JT/T 808 常见能力:消息分包、消息下发、报文加解密、多版本适配。
- • 怎么做:配置项通过
application.yml/yaml管理,示例里能看到分包缓存、线程池、最大帧长等参数。 - • 对外部依赖要显式说明:
- • 分包存储支持
caffeine / redis / none(示例里有 caffeine、redis 的配置块) - • 若启用 redis,你需要自备 Redis 服务并开放连接权限
4)附件服务器(苏标附件等)
- • 是什么:独立的附件服务器能力(与 808 指令服务器可分开启停),用于上传/接收附件数据链路。
- • 怎么做:示例
samples/jt-808-attachment-server-sample中可看到: - •
jt808.attachment-server.enabled: true - •
jt808.attachment-server.port: 6809 - • 注意事项(可选):附件临时目录/落盘目录需要可写权限(示例默认
/tmp/jt808-attachment-server-demo/)。
5)JT/T 1078(beta)
- • 是什么:提供 1078 服务端 starter + 示例(WebMVC/WebFlux),用于音视频链路相关场景。
- • 怎么做:示例
samples/jt-1078-server-sample-webmvc-boot3/...webflux-boot3: - • HTTP:
server.port: 1078 - • TCP:
jt1078.server.port: 61078 - • 注意事项(可选):示例里包含数据 dump 到文件的配置(默认
/tmp/jtt/**),部署到容器或生产机时要显式挂载目录。
6)Dashboard(beta)
- • 是什么:Dashboard server/client + UI(Vue3)模块,提供更直观的运行态入口。
- • 怎么做:模块在
dashboard/**,UI 在dashboard/jt-dashboard-server-ui-vue3。 - • 注意事项(可选):Dashboard 模块当前只支持
spring-boot-3.x/jdk17+(见 README 模块矩阵)。
四、技术选型
- • 后端:
Java · Spring Boot 2/3 · Netty(协议服务端常见实现路径) - • 构建:
Gradle · Kotlin DSL(*.gradle.kts) - • 协议/编解码:
jt-framework · xtream-codec 适配器(3.0.0-rc.1 起内置) - • 缓存(可选):
Caffeine · Redis - • Dashboard:
Spring Boot 3.x · Vue3(jt-dashboard-server-ui-vue3)
五、如何使用
准备数据/环境(先看这个):
- • JDK:
- • Spring Boot 3.x 示例:JDK 17+
- • Spring Boot 2.x 示例:JDK 8+(但仓库整体构建链路以 JDK17 为主,建议本地直接用 JDK17 跑 boot3 示例)
- • 端口(示例默认/推荐):
- • JT/T 808 TCP:
6808(在jt-808-server-sample-customized里显式配置) - • JT/T 808 管理 HTTP:
8808(多个 sample 默认server.port: 8808) - • 附件服务器:
6809(jt-808-attachment-server-sample) - • JT/T 1078 TCP:
61078;HTTP:1078(application-local.yaml) - • 权限/网络:需要开放 TCP 端口给终端连入;容器环境记得映射端口
方式 1:手动构建(maven )
<dependency>
<groupId>io.github.hylexus.jt</groupId>
<artifactId>jt-808-server-spring-boot-starter-boot2</artifactId>
<version>3.0.0-rc.1</version>
</dependency>
- • Windows 可用:
\.\gradlew.bat ...
六、二次开发注意事项
- • 环境依赖版本(从 README/构建配置推断):
- • Spring Boot 2.x starter:JDK 8+(上限到 2.7.18)
- • Spring Boot 3.x starter:JDK 17+(3.0.0+)
- • 构建工具:Gradle Wrapper(
gradlew/gradlew.bat) - • 本地开发启动方式:
- • 先跑 sample:
./gradlew :samples:jt-808-server-sample-bare-boot3:bootRun - • 再按需迁移配置到你的业务工程(核心就是依赖 starter + application.yml)
- • 常见问题 3 条以内:
- • 端口冲突:HTTP(
server.port)和 TCP(jt808.server.port/jt1078.server.port)是两套端口,别只改一个。 - • 容器内目录不可写:1078/附件服务器示例默认写
/tmp/**,生产环境需要挂载并给权限。 - • 分包缓存策略:caffeine/redis 的选择会影响一致性与资源占用,压测后再定。
八、目录结构与主要文件
jt-framework/
├── jt-core # 公共基础能力(供 808/1078/dashboard 复用)
├── jt-808-server-support # JT/T 808 核心实现(协议处理链路、编解码等)
├── jt-808-server-spring-boot-starter # Spring Boot 3.x starter(JDK17+)
├── jt-808-server-spring-boot-starter-boot2 # Spring Boot 2.x starter(JDK8+)
├── jt-1078-server-support # JT/T 1078 核心实现(beta)
├── jt-1078-server-spring-boot-starter # 1078 Spring Boot 3.x starter(beta)
├── dashboard/ # Dashboard 模块(server/client/ui,beta)
├── samples/ # 可直接运行的示例(808/1078/附件服务器/codec 适配等)
├── demos/ # Demo 工程(更多组合示例)
├── docs/ # 文档站点(VuePress)
├── build.gradle.kts # 根构建脚本(依赖管理、发布、checkstyle 等)
└── settings.gradle.kts # 多模块声明(包含 samples/demos/dashboard)
九、源码地址
- • 仓库地址:https://github.com/hylexus/jt-framework
- • 官方文档:https://hylexus.github.io/jt-framework/
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1194238.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!相关文章
【高薪程序员必会知识点】:深拷贝 vs 浅拷贝——3个实战案例带你彻底掌握
第一章:深拷贝与浅拷贝的核心概念解析在编程中,对象和数据结构的复制操作看似简单,实则暗藏玄机。当一个变量引用复杂数据类型(如对象、数组)时,直接赋值往往不会创建新的独立副本,而是产生指向…
Python批量处理Word文档:告别重复劳动的3个核心技巧
第一章:Python自动化办公与Word处理概述在现代办公环境中,文档处理占据了大量重复性工作时间。利用Python进行自动化办公,尤其是对Microsoft Word文档的批量生成、修改与格式化操作,已成为提升效率的重要手段。通过python-docx等第…
2026年广州诚信的汽配加盟商城,汽车配件加盟,连锁汽配加盟厂家综合实力参考
引言在 2026 年的广州,汽配加盟行业呈现出蓬勃发展的态势。为了给广大投资者提供客观、公正、真实的汽配加盟参考,我们依据相关权威数据和科学的测评方法,对众多汽配加盟商城、汽车配件加盟品牌以及连锁汽配加盟厂家…
20260121人工智能作业v2
文章目录一、核心命令清单(逐条执行,需root权限)1. 校验并创建用户组 dev_team2. 创建用户 alice(指定主组安全配置)3. 创建用户 bob(同alice,仅用户名不同)4. 创建 /opt/project 目…
2025年国内靠谱的假肢公司推荐与深度解析
面对肢体差异,选择一家专业、可靠且充满人文关怀的假肢公司,是开启新生活的关键一步。市场上服务机构众多,但技术水平、服务质量、后续支持参差不齐,用户常面临“价格不透明”、“装配后不适”、“售后服务缺失”等…
专利--授权及花费(发明)
发明专利授权相关费用需分授权登记阶段和授权后年费阶段,以下是 2026 年官方最新标准(人民币,无费减):
一、授权登记阶段费用(一次性缴纳)二、授权后年费(每年缴纳)三、费…
Python模块导入失败怎么办?(ModuleNotFoundError深度解析与实战修复)
第一章:Python模块导入失败怎么办?(ModuleNotFoundError深度解析与实战修复)当Python程序运行时提示 ModuleNotFoundError: No module named xxx,说明解释器无法定位指定模块。该错误通常由路径配置不当、虚拟环境错乱…
连接PostgreSQL总是失败?,一文搞定Python与PostgreSQL无缝集成
第一章:连接PostgreSQL总是失败?常见问题与核心原理在开发和运维过程中,连接 PostgreSQL 数据库失败是常见问题。理解其底层通信机制与配置逻辑,有助于快速定位并解决问题。网络与监听配置
PostgreSQL 默认仅监听本地回环地址&…
【Python报错终极指南】:3步快速解决ModuleNotFoundError难题
第一章:Python报错终极指南的核心价值Python作为一门广泛应用于数据科学、Web开发和自动化脚本的语言,其简洁语法背后隐藏着初学者和资深开发者都可能遭遇的复杂错误。掌握Python报错机制的本质,不仅能快速定位问题,还能提升代码健…
揭秘Python操作PostgreSQL数据库:5个步骤快速上手并避免常见陷阱
第一章:Python连接PostgreSQL数据库概述在现代Web开发和数据处理中,Python因其简洁的语法和强大的生态被广泛用于与关系型数据库交互。PostgreSQL作为功能丰富、可靠性高的开源对象-关系型数据库系统,常与Python配合使用,实现高效…
如何用Python将字符串秒变datetime对象?这4个方法最有效
第一章:字符串转datetime对象的核心意义在现代软件开发中,时间数据的处理无处不在。日志分析、用户行为追踪、任务调度等场景均依赖精确的时间解析。然而,原始时间通常以字符串形式存储或传输,如 "2023-10-05 14:30:00"…
还在用random.randint?这7种高级随机数生成方法你必须掌握,告别初级写法
第一章:Python随机数生成的演进与核心概念Python 的随机数生成功能自诞生以来经历了显著演进,从早期基于简单算法的实现发展为如今支持多种分布和加密安全的成熟体系。其核心依赖于伪随机数生成器(PRNG),默认使用梅森旋…
中电金信:源启行业AI开发与服务平台荣获“大湾区珠港澳IT产品创新奖”
近日,珠海市计算机学会联合香港新兴科技教育协会、澳门电脑学会共同发布“2025年度大湾区珠港澳IT产品(项目)创新奖”。中电金信“源启行业AI开发与服务平台”凭借领先的技术架构与显著的行业赋能价值,成功荣获该奖…
必读感悟:软件测试中的心理健康挑战
软件测试与心理健康的隐形纽带
在快速迭代的软件开发世界中,软件测试作为质量保障的核心环节,常常被喻为“系统的守门人”。然而,测试从业者面临的心理健康挑战却鲜少被关注。高强度的工作节奏、重复性任务的压力以及角色边缘化的现实&#…
OpenCV+Python摄像头开发,你不可错过的7个优化技巧
第一章:OpenCVPython摄像头开发概述OpenCV(Open Source Computer Vision Library)是一个功能强大的开源计算机视觉库,支持多种编程语言,其中 Python 因其简洁的语法和丰富的生态成为开发者首选。结合 OpenCV 与 Python…
Python字典排序怎么按value排?这3种技巧你必须掌握
第一章:Python字典排序按value大小的核心概念在Python中,字典(dict)是一种无序的键值对集合。尽管从Python 3.7开始,字典保持了插入顺序,但其本身并不支持按值(value)自动排序。当需…
2026年远程测试工作的智能化重构与神经多样性适配
一、行业现状:远程测试的机遇与核心挑战
2026年全球远程办公市场规模突破8000亿美元,其中软件测试领域因技术适配性强,远程化渗透率达78%。核心机遇体现为三方面: 人才池全球化:企业可跨时区组建测试团队,…
【实时图像处理核心技术】:用Python OpenCV打造低延迟视频监控系统
第一章:实时图像处理核心技术概述实时图像处理是现代计算机视觉系统的核心,广泛应用于自动驾驶、视频监控、增强现实等领域。其核心目标是在极短时间内完成图像采集、分析与响应,确保系统具备低延迟和高吞吐能力。关键处理流程
实时图像处理通…
揭秘Python OpenCV实时画面处理:3步构建高性能摄像头应用
第一章:揭秘Python OpenCV实时画面处理:3步构建高性能摄像头应用在现代计算机视觉开发中,实时画面处理是智能监控、人脸识别和增强现实等应用的核心。借助 Python 与 OpenCV 的强大组合,开发者能够快速搭建高效稳定的摄像头应用。…
完整教程:Qt Designer 和 PyQt 开发教程
pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …
图片