# demo-mqtt **Repository Path**: jackc222/demo-mqtt ## Basic Information - **Project Name**: demo-mqtt - **Description**: 测试成功SpringBoot+integration+mqtt - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2026-03-24 - **Last Updated**: 2026-04-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MQTT 消息代理服务 这是一个基于 Spring Boot 的 MQTT 消息处理服务,提供灵活的消息解析、动态加载解析规则、REST API 控制等功能。适用于物联网设备消息接入、解析和管理场景。 ## 功能特性 - **MQTT 消息处理** - 支持动态增删订阅主题 - 提供消息发布接口 - 实时查看客户端连接状态 - **灵活的消息解析** - 多种预定义解析器(阀门、水泵、温湿度传感器等) - 支持自定义解析规则 - 提供 Java、Groovy、JavaScript 多语言解析器支持 - **动态加载能力** - 支持运行时加载/卸载/重载解析器 - 提供 REST API 管理动态解析器 - 支持热部署,无需重启服务 - **可视化管理** - OpenAPI 接口文档 - 提供基础 Web 页面 - 支持文件上传/下载/管理解析器源码 ## 系统架构图 ![系统架构图](img_1.png) ## 消息处理流程 ![消息处理流程](img_2.png) ## 主题匹配原理 ![主题匹配原理](img_3.png) ## 快速开始 ### 环境要求 - Java 8+ - Maven 3.8+ - MQTT Broker(如 Mosquitto、EMQX 等) ### 配置说明 配置文件位于 `src/main/resources/application.yml`,主要配置项: ```yaml mqtt: hostUrl: tcp://localhost:1883 loginUserName: admin password: admin clientId: demoClient keepAliveInterval: 60 topicPrefix: /Device/ ``` ### 启动服务 ```bash mvn spring-boot:run ``` ## 使用示例 ### 发送 MQTT 消息 ```bash curl -X POST http://localhost:8080/mqtt/send \ -d "msg={\"weight\":\"12.5\",\"timestamp\":\"20231001120000\"}" \ -d "topic=/Valve_Controller/001" ``` ### 上传解析器 ```bash curl -F "file=@ValveParser.java" http://localhost:8080/parsers/files/upload ``` ### 重新加载解析器 ```bash curl -X POST http://localhost:8080/parsers/reload?fileName=ValveParser.java ``` ## API 文档 启动服务后访问:http://localhost:8080/swagger-ui/index.html ## 项目结构 ``` ├── mqtt-parsers # 存放动态解析器源文件 ├── src/main/java # 核心代码 │ ├── org.example.demomqtt # 主应用 │ │ ├── demos # 功能模块 │ │ │ ├── common # 通用工具类 │ │ │ ├── mqtt # MQTT 核心功能 │ │ │ ├── web # REST API 接口 │ │ │ ├── utils # 工具类 │ │ │ ├── vo # 数据传输对象 │ │ │ └── config # 配置类 │ │ └── demos/mqtt/handle # 消息处理模块 │ │ ├── loader # 解析器加载 │ │ ├── matcher # 主题匹配算法 │ │ └── parser # 预定义解析器 ├── src/main/resources # 资源文件 │ ├── application.yml # 配置文件 │ └── static # 静态资源 ``` ## 许可证 本项目采用 Apache 2.0 许可证。详见 LICENSE 文件。