# 多个测试客户端配置功能 ## 功能概述 本功能允许系统保存和管理多个测试客户端配置,使用服务器地址(Address)作为唯一标识符。系统已简化为只保留多个配置的管理功能。 ## 主要特性 ### 1. 基于Address的唯一性管理 - 使用服务器地址(Address)作为配置的唯一key - 保存前自动检查Address是否存在 - 存在则更新,不存在则添加新配置 ### 2. 自动配置加载 - 页面加载时显示默认配置(第一个配置) - 输入Address时自动查询并加载对应配置 - 支持实时配置切换 ### 3. 简化的配置文件管理 - 只使用 `test_client_configs.json` 存储所有配置 - 移除了单个配置文件的管理 - 自动创建默认配置(如果没有配置存在) ## API接口 ### 获取默认测试客户端配置 ``` GET /api/testconfig/default ``` ### 获取所有测试客户端配置 ``` GET /api/testconfig ``` ### 根据地址获取测试客户端配置 ``` GET /api/testconfig/address/{address} ``` ### 设置默认测试客户端配置 ``` POST /api/testconfig/default ``` ### 删除测试客户端配置 ``` DELETE /api/testconfig/address/{address} ``` ### 启动测试客户端 ``` POST /api/testconfig/start Content-Type: application/json { "address": "192.168.13.12:9001" // 可选,如果不提供则使用默认配置 } ``` ### 停止测试客户端 ``` POST /api/testconfig/stop Content-Type: application/json { "address": "192.168.13.12:9001" // 可选,如果不提供则使用默认配置 } ``` ## 前端功能 ### 自动配置查询 - 在地址输入框失去焦点时自动查询配置 - 如果找到配置则自动填充表单 - 如果未找到则准备创建新配置 ### 智能保存 - 保存时自动检查Address是否存在 - 存在则更新现有配置 - 不存在则创建新配置 ## 使用示例 ### 1. 创建新配置 1. 在配置页面输入新的服务器地址 2. 填写其他配置信息 3. 点击保存,系统会自动创建新配置 ### 2. 更新现有配置 1. 输入已存在的服务器地址 2. 系统会自动加载现有配置 3. 修改配置信息 4. 点击保存,系统会更新现有配置 ### 3. 切换配置 1. 在地址输入框中输入不同的地址 2. 系统会自动加载对应的配置 3. 可以查看和编辑不同地址的配置 ## 技术实现 ### 后端实现 - `WebSocketManagerService` 简化为只管理多个配置 - 使用 `List` 存储所有配置 - 基于Address的唯一性检查 - 自动文件持久化 - 移除了单个配置的管理逻辑 ### 前端实现 - JavaScript自动查询功能 - 表单自动填充 - 实时配置切换 ## 文件结构 ``` Services/ ├── WebSocketManagerService.cs # 简化的多配置管理逻辑 Controllers/ ├── WebSocketController.cs # API接口 Views/Home/ ├── TestClientConfig.cshtml # 配置管理页面 ``` ## 配置文件格式 ### test_client_configs.json ```json [ { "name": "TestClient1", "address": "192.168.13.12:9001", "enabled": true, "password": "test123", "reconnectDelay": 15000, "ssl": false, "readonly": false, "mode": "ran", "logs": { "layers": { "PHY": { "level": "debug", "filter": "debug", "maxSize": 1000, "payload": true } } } } ] ``` ## 简化设计说明 ### 移除的功能 - 单个测试配置文件 (`test_client_config.json`) - 单个配置的独立管理方法 - 复杂的配置切换逻辑 ### 保留的功能 - 多个配置的管理 - 基于Address的唯一性检查 - 自动配置加载和保存 - 默认配置的自动创建 ## 注意事项 1. Address必须是唯一的,不能重复 2. 系统会自动创建默认配置(如果没有配置存在) 3. 删除配置时使用Address作为标识 4. 页面刷新时会加载默认配置(第一个配置) 5. 所有配置都会持久化到 `test_client_configs.json` 文件中 6. 系统已简化为只管理多个配置,不再维护单个配置文件