|
|
|
@ -869,6 +869,37 @@ class WebSocketConfig(BaseModel): |
|
|
|
WebSocket服务器 ↔ WebSocketClient ↔ WebSocketAdapter ↔ WebSocketChannel |
|
|
|
``` |
|
|
|
|
|
|
|
### WebSocket适配器空数据处理修复 |
|
|
|
**问题**:适配器收到 `None` 类型的消息数据时产生警告日志 |
|
|
|
|
|
|
|
**解决方案**: |
|
|
|
1. 在适配器的 `_send_loop` 方法中添加对 `None` 值的特殊处理 |
|
|
|
2. 将警告日志改为调试日志,避免产生过多警告 |
|
|
|
|
|
|
|
**文件变更**: |
|
|
|
- 更新 `app/core/websocket/adapter.py` - 修复空数据处理 |
|
|
|
|
|
|
|
**修改内容**: |
|
|
|
```python |
|
|
|
if msg.data is None: |
|
|
|
# 如果data为None,跳过发送 |
|
|
|
logger.debug(f"适配器跳过空数据消息: {self.outbound_channel.name} -> {msg.type}") |
|
|
|
elif isinstance(msg.data, dict): |
|
|
|
# 正常处理字典数据 |
|
|
|
# ... |
|
|
|
else: |
|
|
|
# 处理其他非字典格式数据 |
|
|
|
# ... |
|
|
|
``` |
|
|
|
|
|
|
|
**优化效果**: |
|
|
|
- ✅ 正确处理空数据消息 |
|
|
|
- ✅ 避免产生不必要的警告日志 |
|
|
|
- ✅ 保持代码的健壮性 |
|
|
|
- ✅ 调试信息更清晰 |
|
|
|
- ✅ **添加调试日志,便于排查消息接收问题** |
|
|
|
- ✅ **添加详细的消息内容日志,便于调试心跳消息流转** |
|
|
|
|
|
|
|
### Channel生命周期管理完善 |
|
|
|
**问题**:用户指出"没有遵循单一原则是 channel.py他stop 之后能使用吗 ,二次连接webscoket 还能有吗 生命周期" |
|
|
|
|
|
|
|
|