python - 使用 Twisted Websocket Python 获取 SSL 错误
问题描述
嗨,我正在尝试使用 Twisted websocket 在 Ubuntu 20.0 上使用 Python 3.8.0 连接到 wss://ws.okex.com:8443/ws/v5/private。
这可以正常运行 5-20 分钟,然后我总是会遇到以下 2 个错误之一:
Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/twisted/python/log.py", line 101, in callWithLogger
return callWithContext({"system": lp}, func, *args, **kw)
File "/usr/local/lib/python3.8/dist-packages/twisted/python/log.py", line 85, in callWithContext
return context.call({ILogContext: newCtx}, func, *args, **kw)
File "/usr/local/lib/python3.8/dist-packages/twisted/python/context.py", line 118, in callWithContext
return self.currentContext().callWithContext(ctx, func, *args, **kw)
File "/usr/local/lib/python3.8/dist-packages/twisted/python/context.py", line 83, in callWithContext
return func(*args, **kw)
--- <exception caught here> ---
File "/usr/local/lib/python3.8/dist-packages/twisted/internet/posixbase.py", line 686, in _doReadOrWrite
why = selectable.doRead()
File "/usr/local/lib/python3.8/dist-packages/twisted/internet/tcp.py", line 247, in doRead
return self._dataReceived(data)
File "/usr/local/lib/python3.8/dist-packages/twisted/internet/tcp.py", line 252, in _dataReceived
rval = self.protocol.dataReceived(data)
File "/usr/local/lib/python3.8/dist-packages/twisted/protocols/tls.py", line 324, in dataReceived
self._flushReceiveBIO()
File "/usr/local/lib/python3.8/dist-packages/twisted/protocols/tls.py", line 295, in _flushReceiveBIO
self._flushSendBIO()
File "/usr/local/lib/python3.8/dist-packages/twisted/protocols/tls.py", line 248, in _flushSendBIO
bytes = self._tlsConnection.bio_read(2 ** 15)
File "/usr/local/lib/python3.8/dist-packages/OpenSSL/SSL.py", line 1848, in bio_read
self._handle_bio_errors(self._from_ssl, result)
File "/usr/local/lib/python3.8/dist-packages/OpenSSL/SSL.py", line 1826, in _handle_bio_errors
_raise_current_error()
File "/usr/local/lib/python3.8/dist-packages/OpenSSL/_util.py", line 57, in exception_from_error_queue
raise exception_type(errors)
OpenSSL.SSL.Error: []
或者
Unhandled Error
Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/twisted/python/log.py", line 101, in callWithLogger
return callWithContext({"system": lp}, func, *args, **kw)
File "/usr/local/lib/python3.8/dist-packages/twisted/python/log.py", line 85, in callWithContext
return context.call({ILogContext: newCtx}, func, *args, **kw)
File "/usr/local/lib/python3.8/dist-packages/twisted/python/context.py", line 118, in callWithContext
return self.currentContext().callWithContext(ctx, func, *args, **kw)
File "/usr/local/lib/python3.8/dist-packages/twisted/python/context.py", line 83, in callWithContext
return func(*args, **kw)
--- <exception caught here> ---
File "/usr/local/lib/python3.8/dist-packages/twisted/internet/posixbase.py", line 686, in _doReadOrWrite
why = selectable.doRead()
File "/usr/local/lib/python3.8/dist-packages/twisted/internet/tcp.py", line 247, in doRead
return self._dataReceived(data)
File "/usr/local/lib/python3.8/dist-packages/twisted/internet/tcp.py", line 252, in _dataReceived
rval = self.protocol.dataReceived(data)
File "/usr/local/lib/python3.8/dist-packages/twisted/protocols/tls.py", line 324, in dataReceived
self._flushReceiveBIO()
File "/usr/local/lib/python3.8/dist-packages/twisted/protocols/tls.py", line 295, in _flushReceiveBIO
self._flushSendBIO()
File "/usr/local/lib/python3.8/dist-packages/twisted/protocols/tls.py", line 248, in _flushSendBIO
bytes = self._tlsConnection.bio_read(2 ** 15)
File "/usr/local/lib/python3.8/dist-packages/OpenSSL/SSL.py", line 1848, in bio_read
self._handle_bio_errors(self._from_ssl, result)
File "/usr/local/lib/python3.8/dist-packages/OpenSSL/SSL.py", line 1823, in _handle_bio_errors
raise ValueError("unknown bio failure")
builtins.ValueError: unknown bio failure
但是,如果我在 Windows(相同的 python 版本)上运行它,它工作正常。我还发现这篇没有答案的帖子:How to solve OpenSSL empty Error with Twython?
解决方案
推荐阅读
- javascript - 第 4 行的类型错误:回调不是函数 JavaScript 回调
- c# - 影响 Azure 应用服务 (ASP.NET WebApi) 中的并发性的限制因素是什么?
- c++ - 重载的小于运算符返回相反的布尔值
- python-3.x - 如何计算熊猫列中非空元素的数量?
- c++ - 在 C/C++ 中打开位于“/sys/”下的文件时出错
- spring-boot - SpringBootApplication 与 Spring Starter Web 错误
- node.js - 无法在 mongoDb 集合中保存数据:“ReferenceError:模型未定义”
- image - python图像显示
- swiftui - 在 SwiftUI 中返回泛型 View 类型的方法
- elasticsearch - ElasticSearch 查询字符串在嵌套对象中按范围搜索日期