ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

1006连接使用python 3.7 websockets关闭异常错误

2019-07-10 13:05:24  阅读:383  来源: 互联网

标签:python python-3-x websocket python-asyncio


我遇到与python websockets这个github问题相同的问题:
https://github.com/aaugustin/websockets/issues/367

建议的解决方案对我不起作用.我得到的错误是:

websockets.exceptions.ConnectionClosed:WebSocket连接关闭:代码= 1006(连接异常关闭[内部]),没有理由

这是我的代码:

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.

让我知道你的想法,谢谢!

解决方法:

所以我找到了解决方案:

当连接关闭时,由于某种原因,它会从while循环中断开.因此,为了保持websocket运行,你必须环绕

resp = await websocket.recv()

尝试…除了和有

print('Reconnecting')
websocket = await websockets.connect(ws_url)

在异常处理部分.

标签:python,python-3-x,websocket,python-asyncio
来源: https://codeday.me/bug/20190710/1424488.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有