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
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. 系统已简化为只管理多个配置,不再维护单个配置文件
|