# xndc_104 **Repository Path**: gideshi/xndc_104 ## Basic Information - **Project Name**: xndc_104 - **Description**: 虚拟电厂104协议网关 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2025-08-24 - **Last Updated**: 2025-08-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 设备数据采集服务 基于Spring Boot和Netty实现的设备数据采集服务,用于接收物联网设备上报的数据。 ## 功能特点 - 基于Netty实现高性能TCP服务器 - 支持多种设备消息格式解析 - 提供REST API查询设备状态 - 可扩展的消息处理机制 - 集成Druid连接池和监控 ## 技术栈 - Spring Boot 2.7.x - Netty 4.1.x - FastJSON 2.0.x - Druid 1.2.x - MyBatis-Plus 3.5.x - Lombok ## 快速开始 ### 环境要求 - JDK 8+ - Maven 3.6+ ### 编译构建 ```bash mvn clean package ``` ### 启动服务 ```bash java -jar target/device-data-collector-0.0.1-SNAPSHOT.jar ``` 默认Netty服务器监听端口为9000,Spring Boot Web服务端口为8080。 ### 配置修改 在`application.yml`文件中可以修改以下配置: ```yaml netty: server: port: 9000 # Netty服务器端口 max-frame-length: 65535 # 最大消息长度 worker-threads: 0 # 工作线程数(0表示使用默认值) ``` ## 设备消息格式 设备上报消息格式示例(JSON): ```json { "deviceId": "DEVICE_12345678", "messageType": "TELEMETRY", "timestamp": 1623766401000, "data": { "temperature": 25.6, "humidity": 68.3, "voltage": 220.5 } } ``` ## 客户端模拟工具 项目提供了一个模拟客户端工具 `NettyClientSimulator`,可用于测试服务器功能: ```java public static void main(String[] args) { NettyClientSimulator client = new NettyClientSimulator("localhost", 9000); try { client.connect(); Map data = new HashMap<>(); data.put("temperature", 25.5); data.put("humidity", 65.0); client.sendMessage("DEVICE_TEST", "TELEMETRY", data); Thread.sleep(2000); } catch (Exception e) { log.error("模拟客户端运行异常", e); } finally { client.close(); } } ``` ## API接口 - `GET /api/device/status` - 获取服务状态 - `GET /api/device/simulate` - 模拟发送设备消息(测试用) - `GET /api/druid/datasource` - 测试Druid数据源 - `GET /api/druid/test-query` - 测试数据库查询 ## Druid监控 项目集成了Druid监控平台,可通过以下方式访问: - 监控地址:`http://localhost:8080/druid` - 默认用户名:`admin` - 默认密码:`admin` Druid监控提供了以下功能: - SQL监控:查看所有SQL的执行情况 - 连接池监控:实时查看数据库连接池状态 - URL监控:查看Web请求的执行情况 - Session监控:查看会话情况 - SQL防火墙:防止SQL注入攻击 ## 扩展开发 要处理不同类型的设备消息,可以通过扩展 `DeviceMessageService` 接口来实现自定义的消息处理逻辑。