Flask-SocketIO服务端无法接收客户端发送的事件问题求助
问题原因
你遇到的是Socket.IO客户端与服务端版本不兼容的典型问题,这是Flask-SocketIO开发中最常见的适配坑。
Flask-SocketIO对前端Socket.IO.js的版本有严格的匹配要求:你当前引入的前端Socket.IO是4.0.1版本,如果你本地安装的Flask-SocketIO为v4及以下版本,就会出现连接异常、事件无法传递的问题。
解决方法
- 优先升级服务端依赖到适配4.x客户端的版本,执行以下命令:
pip install --upgrade flask-socketio python-socketio python-engineio
升级完成后重新启动服务,即可正常接收my event事件的推送。 - 如果你需要保留旧版Flask-SocketIO v4,把前端引入的Socket.IO.js替换为2.x版本即可完成适配。
可选优化&调试方案
- 你当前前端JS代码里的注释用了Python的
#语法,JS单行注释应为//,修改为// Creating event when connected即可消除控制台语法报错,该错误不影响事件发送功能。 - 可以在前端添加连接异常监听,快速定位连接问题:
socket.on('connect_error', (err) => { console.error('连接失败原因:', err) })
- 如果后续部署到跨域名场景,服务端初始化SocketIO时需要添加跨域配置:
socketio = SocketIO(app, cors_allowed_origins="*")
内容的提问来源于stack exchange,提问作者Celltox
相关产品推荐
相关产品推荐

