You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

174 lines
4.0 KiB

1 month ago
# 多个测试客户端配置功能
## 功能概述
本功能允许系统保存和管理多个测试客户端配置,使用服务器地址(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<ClientConfig>` 存储所有配置
- 基于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. 系统已简化为只管理多个配置,不再维护单个配置文件