aiohttp ssl.SSLError: [SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] 错误处理

这个问题原因吧其实就是3.10 开始官网更新了TLS 堆栈默认安全设置
感兴趣的可以看下链接
python官网叙述: Python 3.10 增加了 TLS 堆栈的默认安全设置

解决也很简单,将ssl安全等级降下来就行,例如:

import ssl
import aiohttp
ctx = ssl.create_default_context()
ctx.set_ciphers('DEFAULT')

async def connect():
    try:
        async with  aiohttp.ClientSession().ws_connect('wss://danmuproxy.douyu.com:8504/',
                               		  receive_timeout=30 + 5,
                                      ssl_context=ctx) as websocket:  #这里更新了ssl_context内容换成自己的DEFAULT 策略
            await on_ws_connect(websocket)

            message: aiohttp.WSMessage
            async for message in websocket:
                await on_ws_message(message)
    finally:
        await session.close()

你可能感兴趣的:(python3,ssl,python3.10,aiohttp)