3.6 KiB
3.6 KiB
WebSocket 故障排除指南
常见错误及解决方案
错误1: __init__() got an unexpected keyword argument 'throw_exception_if_unrepairable'
原因:
unicorn-binance-websocket-api2.4.0 版本不支持throw_exception_if_unrepairable参数- 该参数可能在新版本中被移除或改名
解决方案:
- ✅ 已修复:移除了不支持的参数
- ✅ 已添加:多种初始化方式的回退机制
- ✅ 已优化:更好的错误日志输出
修复后的行为:
- 首先尝试使用
high_performance=True参数 - 如果失败,尝试只使用
exchange参数 - 如果还是失败,尝试使用位置参数
- 所有方式都失败时,输出详细的错误信息
错误2: ModuleNotFoundError: No module named 'unicorn_binance_websocket_api'
原因:
- 未安装
unicorn-binance-websocket-api依赖
解决方案:
cd trading_system
pip install -r requirements.txt
# 或单独安装
pip install unicorn-binance-websocket-api==2.4.0
错误3: WebSocket连接失败
可能原因:
- 网络连接问题
- 防火墙阻止
- Binance服务器问题
检查步骤:
# 检查网络连接
ping stream.binance.com
# 检查DNS解析
nslookup stream.binance.com
解决方案:
- 检查服务器网络配置
- 检查防火墙规则
- 等待Binance服务恢复
错误4: WebSocket订阅失败
可能原因:
- 订阅的交易对数量过多
- 交易对格式错误
- WebSocket连接不稳定
解决方案:
- 减少订阅数量(调整
WEBSOCKET_SUBSCRIBE_COUNT) - 检查交易对格式(应该是大写,如
BTCUSDT) - 查看日志中的详细错误信息
验证WebSocket是否正常工作
1. 查看启动日志
正常启动应该看到:
✓ Unicorn WebSocket管理器启动成功 (测试网: False)
交易所: binance.com-futures
✓ 已成功订阅 100 个交易对的实时价格流
✓ 价格数据将通过WebSocket实时更新,减少REST API调用
2. 查看运行时日志
正常运行时应该看到:
✓ [WebSocket] 从缓存获取 BTCUSDT 价格: 43250.50000000 (缓存年龄: 2.3秒)
3. 查看统计信息
每次扫描后应该看到:
WebSocket状态: 订阅=100个交易对, 缓存=100个价格, 活跃流=1个
调试技巧
启用详细日志
在 config.py 或环境变量中设置:
LOG_LEVEL = 'DEBUG'
检查WebSocket状态
在代码中添加:
if client.unicorn_manager:
stats = client.unicorn_manager.get_stream_statistics()
print(f"WebSocket统计: {stats}")
手动测试WebSocket连接
from unicorn_binance_websocket_api.manager import BinanceWebSocketApiManager
manager = BinanceWebSocketApiManager(exchange="binance.com-futures")
stream_id = manager.create_stream(["arr"], ["btcusdt@ticker"])
print(f"Stream ID: {stream_id}")
版本兼容性
支持的版本
unicorn-binance-websocket-api >= 2.0.0- 推荐版本:
2.4.0
已知问题
- 2.4.0版本不支持
throw_exception_if_unrepairable参数(已修复) - 某些旧版本可能不支持
high_performance参数(已添加回退)
性能优化建议
- 订阅数量: 根据实际需求调整,不要订阅过多
- 缓存TTL: 默认60秒,可以根据需要调整
- 日志级别: 生产环境使用
INFO,调试时使用DEBUG
联系支持
如果问题仍然存在:
- 查看完整的错误日志
- 检查
unicorn-binance-websocket-api版本 - 查看 Unicorn Binance WebSocket API 文档