# data-transfer **Repository Path**: hechen_L/data-transfer ## Basic Information - **Project Name**: data-transfer - **Description**: 简单配置即可实现:数据传输、数据同步等功能,支持mqtt、http - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-04-09 - **Last Updated**: 2025-04-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: Java, mqtt, Http ## README # 数据多通道传输系统 ## 项目介绍 支持通过 **MQTT**、**HTTP** 等协议进行数据传输,核心流程分为: 1. 数据采集:实现 `IDataOriginService` 接口获取数据源 2. 数据传输:调用 `IDataTransService` 接口推送数据 ## 项目结构 ### app-service - **核心业务模块** - 📌 开发者需实现 `IDataOriginService` - 🚀 调用 `IDataTransService` 发送数据 - ⏱️ 内置定时任务调度 ### mqtt - **MQTT客户端实现**(内部封装) - 基于EMQX开发 - 自动重连 | QoS支持 | Topic通配 ### http - **HTTP通信模块**(内部封装) - 支持自动重试配置 ## 快速开始 ### MQTT配置 1. 在配置类中声明Broker和Client信息: ```java @Configuration public class MqttConfig { @Bean public MyBroker broker1( @Value("${mqtt.broker1.url}") String url, @Value("${mqtt.broker1.credential}") String credential) { return new MyBroker("broker1", url, credential); } @Bean public MqttClientInitiator mqttClientInitiator(MyBroker broker1) throws Exception { MqttClientInitiator initiator = new MqttClientInitiator(); initiator.init( new InitClient("tempClientId", true, broker1, MqttTopic.TEMPERATURE, null, null) ); return initiator; } } ``` 2. 在`application.yml`添加配置: ```yaml mqtt: broker1: url: "tcp://emqx:1883" credential: "admin:public" ```