# mqttForwardApp **Repository Path**: xiaoxi109/mqttForwardApp ## Basic Information - **Project Name**: mqttForwardApp - **Description**: 一款基于 Wails + Vue 构建的跨平台 MQTT 消息转发应用,支持将消息从一个 MQTT Broker 转发到另一个 MQTT Broker。支持创建多个独立的转发组,每个转发组可配置独立的源和目标 Broker - **Primary Language**: Go - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-21 - **Last Updated**: 2026-05-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MQTT 消息转发器 一款基于 Wails + Vue 构建的跨平台 MQTT 消息转发应用,支持将消息从一个 MQTT Broker 转发到另一个 MQTT Broker。 ## 功能特性 - **多转发组管理**:支持创建多个独立的转发组,每个转发组可配置独立的源和目标 Broker - **实时状态监控**:实时显示每个转发组的运行状态(运行中/已停止) - **消息日志**:实时查看转发的 MQTT 消息内容 - **连接测试**:支持测试源和目标 Broker 的连接状态 - **自动重连**:当 Broker 连接断开时自动尝试重连 - **跨平台支持**:支持 Windows、macOS、Linux 系统 ## 技术栈 - **后端**: Go 1.23 + Wails 2.12 - **前端**: Vue 3 + TypeScript + Element Plus - **MQTT 客户端**: Eclipse Paho MQTT Go Client ## 快速开始 ### 前提条件 - Go 1.23+ - Node.js 18+ - Wails CLI(可选,用于开发) ### 运行开发模式 ```bash wails dev ``` ### 构建生产版本 ```bash wails build wails build -o mqttForward.exe ``` ## 使用说明 ### 添加转发组 1. 点击「添加转发组」按钮 2. 填写转发组名称 3. 配置源 Broker 和目标 Broker: - **Broker**: MQTT Broker 地址,如 `tcp://localhost:1883` - **Username/Password**: 可选的认证信息 - **Client ID**: 客户端标识符 - **Topics**: 订阅的主题(每行一个) - **QoS**: 消息服务质量等级(0/1/2) 4. 点击「测试连接」验证配置是否正确 5. 点击「保存」完成添加 ### 管理转发组 - **启动/停止**: 在操作列点击对应按钮控制转发组状态 - **查看消息**: 点击「消息」按钮查看实时转发的消息日志 - **编辑**: 通过更多菜单编辑转发组配置 - **删除**: 通过更多菜单删除转发组 ## 配置文件 配置文件 `config.json` 会自动保存在以下位置: 1. 当前工作目录 2. 可执行文件所在目录 配置格式: ```json { "forwardGroups": [ { "name": "转发组名称", "source": { "broker": "tcp://localhost:1883", "username": "admin", "password": "public", "clientID": "mqttForwardA", "topics": ["topic1/#", "topic2/+"], "qos": 0 }, "target": { "broker": "tcp://localhost:1884", "username": "admin", "password": "public", "clientID": "mqttForwardB", "topics": [], "qos": 0 }, "enabled": true } ] } ``` ## 项目结构 ``` mqttForwardApp/ ├── build/ # 构建输出目录 ├── frontend/ # 前端代码 │ ├── src/ │ │ ├── components/ # Vue 组件 │ │ │ ├── ForwardGroupDialog.vue # 转发组配置对话框 │ │ │ ├── MessageLog.vue # 消息日志组件 │ │ │ └── GroupTable.vue # 转发组列表组件 │ │ ├── App.vue # 主应用组件 │ │ ├── main.ts # 入口文件 │ │ └── style.css # 全局样式 │ └── wailsjs/ # Wails 生成的绑定代码 ├── mqtt/ # MQTT 服务模块 │ └── service.go # MQTT 转发逻辑 ├── app.go # 应用主逻辑 ├── config.go # 配置管理 ├── main.go # 入口文件 ├── go.mod # Go 依赖 └── wails.json # Wails 配置 ``` ## 开发说明 ### 开发模式 开发模式下会启动两个服务: - 前端开发服务器(热更新) - Wails 后端服务 ```bash wails dev ``` ### 代码结构 **后端 (Go)**: - `mqtt/service.go`: MQTT 客户端管理、消息转发逻辑、连接状态管理 - `app.go`: 前端与后端的 API 接口定义 - `config.go`: 配置文件的读取和保存 **前端 (Vue)**: - `App.vue`: 主应用布局和状态管理 - `components/ForwardGroupDialog.vue`: 转发组配置表单 - `components/GroupTable.vue`: 转发组列表展示 - `components/MessageLog.vue`: 消息日志展示 ## 许可证 MIT License ## 贡献 欢迎提交 Issue 和 Pull Request!