Browse Source
1. 在CellularNetworkService.StartNetworkAsync中添加协议客户端配置创建 2. 优化WebSocketTransportExtensions,移除冗余方法 3. 修正WebSocket配置文件与模型类匹配 4. 集成WebSocket传输服务到Startup 5. 重命名LogLayerHelp为ProtocolLayerConfigFactory 6. 完善错误处理和日志记录feature/protocol-log-Perfect
10 changed files with 459 additions and 134 deletions
@ -0,0 +1,11 @@ |
|||
{ |
|||
"WebSocket": { |
|||
"Url": "wss://localhost:8080/ws", |
|||
"TimeoutMs": 15000, |
|||
"BatchTimeoutMs": 50, |
|||
"MaxBatchSize": 50, |
|||
"MaxReconnectAttempts": 3, |
|||
"QueueCapacity": 500, |
|||
"CacheTtlMinutes": 5 |
|||
} |
|||
} |
@ -0,0 +1,11 @@ |
|||
{ |
|||
"WebSocket": { |
|||
"Url": "wss://example.com/ws", |
|||
"TimeoutMs": 30000, |
|||
"BatchTimeoutMs": 100, |
|||
"MaxBatchSize": 100, |
|||
"MaxReconnectAttempts": 5, |
|||
"QueueCapacity": 1000, |
|||
"CacheTtlMinutes": 30 |
|||
} |
|||
} |
@ -0,0 +1,66 @@ |
|||
# 修改记录 |
|||
|
|||
## 2024年修改记录 |
|||
|
|||
### CellularNetworkService.StartNetworkAsync 方法添加协议客户端配置创建 |
|||
|
|||
**修改时间**: 2024年 |
|||
**修改文件**: |
|||
- `CoreAgent.Infrastructure/Services/Network/CellularNetworkService.cs` |
|||
|
|||
**修改内容**: |
|||
|
|||
1. **添加第5.5步协议客户端配置创建** |
|||
- 在 `StartNetworkAsync` 方法的第5步(更新IP端点管理器)之后添加第5.5步 |
|||
- 直接创建 `ProtocolClientConfigFactory` 实例 |
|||
- 调用 `CreateFromEntities()` 方法创建协议客户端配置 |
|||
- 添加配置创建成功/失败的日志记录 |
|||
- **错误处理**:配置创建失败时立即返回失败结果,不继续执行后续步骤 |
|||
- **优化执行顺序**:将协议客户端配置创建提前到网络启动之前,确保数据可用性和错误隔离 |
|||
|
|||
2. **修复Logger类型问题** |
|||
- 添加 `ILoggerFactory` 依赖注入到构造函数 |
|||
- 使用 `_loggerFactory.CreateLogger<ProtocolClientConfigFactory>()` 创建正确类型的Logger |
|||
- 确保 `ProtocolClientConfigFactory` 获得正确的Logger实例 |
|||
|
|||
3. **具体实现**: |
|||
```csharp |
|||
// 5.5. 创建协议客户端配置 |
|||
var protocolConfigFactory = new ProtocolClientConfigFactory(_loggerFactory.CreateLogger<ProtocolClientConfigFactory>(), _context); |
|||
var configCreated = protocolConfigFactory.CreateFromEntities(); |
|||
if (configCreated) |
|||
{ |
|||
_logger.LogInformation("协议客户端配置创建成功,共创建 {ConfigCount} 个配置", protocolConfigFactory.ConfigCount); |
|||
} |
|||
else |
|||
{ |
|||
_logger.LogWarning("协议客户端配置创建失败"); |
|||
return CellularNetworkOperationResult.Failure("协议客户端配置创建失败"); |
|||
} |
|||
``` |
|||
|
|||
4. **添加必要的依赖注入** |
|||
- 添加 `ILoggerFactory loggerFactory` 参数到构造函数 |
|||
- 添加 `using CoreAgent.Infrastructure.Services.Network;` 以支持 `ProtocolClientConfigFactory` |
|||
|
|||
5. **设计优势**: |
|||
- 在IP端点信息准备完成后立即创建协议客户端配置 |
|||
- 不依赖网络启动结果,确保配置创建的独立性 |
|||
- 不依赖依赖注入,直接实例化使用 |
|||
- 提供详细的日志记录便于调试 |
|||
- 保持代码的简洁性和可维护性 |
|||
- 正确处理Logger类型,避免类型不匹配问题 |
|||
- 优化执行顺序,提高错误隔离能力 |
|||
- 完善的错误处理机制,确保配置创建失败时及时停止 |
|||
|
|||
**影响范围**: |
|||
- 蜂窝网络启动流程 |
|||
- 协议客户端配置管理 |
|||
- 网络状态监控 |
|||
- 依赖注入配置(需要更新服务注册) |
|||
|
|||
### LogLayerHelp类名规范化 |
|||
|
|||
**修改时间**: 2024年 |
|||
**修改文件**: |
|||
- ` |
Loading…
Reference in new issue