|
@ -2,6 +2,73 @@ |
|
|
|
|
|
|
|
|
## 2025-01-02 |
|
|
## 2025-01-02 |
|
|
|
|
|
|
|
|
|
|
|
### WebSocketConnection.CloseAsync方法添加跟踪日志 |
|
|
|
|
|
|
|
|
|
|
|
**修改时间**: 2025年1月2日 |
|
|
|
|
|
**修改文件**: |
|
|
|
|
|
- `CoreAgent.WebSocketTransport/Services/WebSocketConnection.cs` |
|
|
|
|
|
|
|
|
|
|
|
**修改内容**: |
|
|
|
|
|
|
|
|
|
|
|
1. **为CloseAsync方法添加详细的跟踪日志信息** |
|
|
|
|
|
- 在方法开始时记录关闭操作的详细信息,包括关闭状态、状态描述和当前连接状态 |
|
|
|
|
|
- 在WebSocket连接处于打开状态时,添加Debug级别的日志记录正常关闭流程 |
|
|
|
|
|
- 在关闭成功时记录成功信息,包括关闭状态和状态描述 |
|
|
|
|
|
- 在关闭失败时记录错误信息,包括异常详情和关闭参数 |
|
|
|
|
|
- 在WebSocket连接未处于打开状态时,记录警告信息并跳过关闭操作 |
|
|
|
|
|
|
|
|
|
|
|
2. **具体实现**: |
|
|
|
|
|
```csharp |
|
|
|
|
|
public async Task CloseAsync(WebSocketCloseStatus closeStatus, string statusDescription, CancellationToken cancellationToken = default) |
|
|
|
|
|
{ |
|
|
|
|
|
_logger.LogInformation("开始关闭 WebSocket 连接 - 关闭状态: {CloseStatus}, 状态描述: {StatusDescription}, 当前连接状态: {CurrentState}", |
|
|
|
|
|
closeStatus, statusDescription, _webSocket.State); |
|
|
|
|
|
|
|
|
|
|
|
if (_webSocket.State == WebSocketState.Open) |
|
|
|
|
|
{ |
|
|
|
|
|
_logger.LogDebug("WebSocket 连接处于打开状态,执行正常关闭流程"); |
|
|
|
|
|
try |
|
|
|
|
|
{ |
|
|
|
|
|
await _webSocket.CloseAsync(closeStatus, statusDescription, cancellationToken); |
|
|
|
|
|
_logger.LogInformation("WebSocket 连接关闭成功 - 关闭状态: {CloseStatus}, 状态描述: {StatusDescription}", |
|
|
|
|
|
closeStatus, statusDescription); |
|
|
|
|
|
} |
|
|
|
|
|
catch (Exception ex) |
|
|
|
|
|
{ |
|
|
|
|
|
_logger.LogError(ex, "WebSocket 连接关闭失败 - 关闭状态: {CloseStatus}, 状态描述: {StatusDescription}, 错误信息: {ErrorMessage}", |
|
|
|
|
|
closeStatus, statusDescription, ex.Message); |
|
|
|
|
|
throw; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
else |
|
|
|
|
|
{ |
|
|
|
|
|
_logger.LogWarning("WebSocket 连接未处于打开状态,跳过关闭操作 - 当前状态: {CurrentState}", _webSocket.State); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
3. **设计优势**: |
|
|
|
|
|
- **详细跟踪**: 提供完整的关闭操作跟踪信息,便于调试和问题排查 |
|
|
|
|
|
- **状态监控**: 记录当前连接状态,帮助理解关闭操作的上下文 |
|
|
|
|
|
- **错误处理**: 完善的异常处理和错误日志记录 |
|
|
|
|
|
- **性能监控**: 可以跟踪关闭操作的执行情况 |
|
|
|
|
|
- **调试友好**: 提供足够的调试信息,便于问题定位 |
|
|
|
|
|
- **日志分级**: 使用不同级别的日志,避免生产环境日志过多 |
|
|
|
|
|
|
|
|
|
|
|
4. **日志级别说明**: |
|
|
|
|
|
- **Information**: 记录关闭操作的开始和成功完成 |
|
|
|
|
|
- **Debug**: 记录正常关闭流程的执行 |
|
|
|
|
|
- **Warning**: 记录跳过关闭操作的情况 |
|
|
|
|
|
- **Error**: 记录关闭失败和异常信息 |
|
|
|
|
|
|
|
|
|
|
|
**影响范围**: |
|
|
|
|
|
- WebSocket连接关闭操作的日志记录 |
|
|
|
|
|
- 调试和问题排查能力 |
|
|
|
|
|
- 连接状态监控 |
|
|
|
|
|
- 错误处理和异常跟踪 |
|
|
|
|
|
|
|
|
|
|
|
## 2025-01-02 |
|
|
|
|
|
|
|
|
### ProtocolWsClientManager.StartAllClients方法启动和连接状态检查分离 |
|
|
### ProtocolWsClientManager.StartAllClients方法启动和连接状态检查分离 |
|
|
|
|
|
|
|
|
**修改时间**: 2025年1月2日 |
|
|
**修改时间**: 2025年1月2日 |
|
|