我遇到了与 python websockets 这个 github 问题相同的问题: https ://github.com/aaugustin/websockets/issues/367
不过,建议的解决方案对我不起作用。我得到的错误是:
websockets.exceptions.ConnectionClosed: WebSocket connection is closed: code = 1006 (connection closed abnormally [internal]), 没有原因
这是我的代码:
async def get_order_book(symbol):
with open('test.csv', 'a+') as csvfile:
csvw = csv.writer(csvfile, delimiter=',', quotechar='|', quoting=csv.QUOTE_MINIMAL)
DT = Data(data=data, last_OB_id=ob_id, last_TR_id=tr_id, sz=10, csvw=csvw)
while True:
if not websocket.open:
print('Reconnecting')
websocket = await websockets.connect(ws_url)
else:
resp = await websocket.recv()
update = ujson.loads(resp)
DT.update_data(update)
async def get_order_books():
r = requests.get(url='https://api.binance.com/api/v1/ticker/24hr')
await asyncio.gather(*[get_order_book(data['symbol']) for data in r.json()])
if __name__ == '__main__':
asyncio.run(get_order_books())
我一直在测试它的方法是关闭我的互联网连接,但在延迟十秒后它仍然返回 1006 错误。
我正在运行 Python 3.7 和 Websockets 7.0。
告诉我你的想法,谢谢!
原文由 Matthieu Gavaudan 发布,翻译遵循 CC BY-SA 4.0 许可协议
所以我找到了解决方案:
当连接关闭时,由于某种原因它会跳出 while 循环。所以为了保持 websocket 运行你必须包围
尝试…除了并有
在异常处理部分。