如何正确设置Python Socket.IO客户端的EIO版本以适配服务端要求
正确设置EIO版本的方法
- EIO版本参数需要传入Socket.IO客户端初始化构造方法中,而不是
connect()方法里,你之前传参的位置错误所以不生效。 - 对应参数名为
engineio_version,指定为3即可适配服务端的EIO=3版本。
修改后的可运行代码如下:
uri="wss://api.my.site" # 初始化客户端时指定engineio版本 sio = socketio.Client(logger=True, engineio_logger=True, engineio_version=3) sio.connect(uri, transports=["websocket"]) sio.wait()
修改完成后运行,日志输出的连接地址参数会变为EIO=3即代表设置生效:
Attempting WebSocket connection to wss://api.my.site/socket.io/?transport=websocket&EIO=3
额外排查项
如果修改后仍不生效,可按以下顺序排查:
- 如果你使用的是非常旧的python-socketio版本,可尝试将初始化时的参数名替换为
eio=3 - 确保你的python-socketio客户端版本支持版本切换:v4.x及以下版本默认使用EIO=3,v5.x及以上版本默认使用EIO=4,所有稳定版本均支持手动指定参数切换版本。
内容的提问来源于stack exchange,提问作者Alexandr Panchenko
相关产品推荐
相关产品推荐

