在使用微信小程序连接flask后端时报错VM14 asdebug.js:10 WebSocket connection to 'ws://192.168.1.15:8080/socket.io/?EIO=3&transport=websocket' failed: (env: Windows,mp,1.06.2301160; lib: 3.8.9),使用的@holytiny\wxmp-socket.io-client包,查了一下是EIO的问题,有没有什么办法解决?ai给的解决方法都试过了没啥用
6条回答 默认 最新
关注让【宝码香车】来帮你解答,本回答参考DeepSeek编写,并整理提供。
如果还有疑问可以点击头像关注私信或评论。如果答案让您满意,请采纳、点赞、关注,非常感谢!
若您愿意支持,欢迎直接打赏,将不胜感激!
微信小程序连接Flask后端WebSocket报错解决方案
这个问题通常是由于微信小程序与Flask-SocketIO版本不兼容导致的。以下是详细的解决方案:
问题分析
错误信息表明:
- 小程序尝试连接
ws://192.168.1.15:8080/socket.io/失败 - 使用了
@holytiny/wxmp-socket.io-client包 - 报错与
EIO参数有关(Engine.IO协议版本问题)
解决方案
1. 确保Flask-SocketIO使用兼容版本
pip uninstall flask-socketio python-socketio python-engineio pip install flask-socketio==5.3.4 python-socketio==5.7.2 python-engineio==4.4.12. 修改Flask后端代码
from flask import Flask from flask_socketio import SocketIO app = Flask(__name__) socketio = SocketIO(app, cors_allowed_origins="*", async_mode='eventlet') @socketio.on('connect') def handle_connect(): print('客户端已连接') if __name__ == '__main__': socketio.run(app, host='0.0.0.0', port=8080)3. 小程序端修改连接方式
import io from '@holytiny/wxmp-socket.io-client' // 修改连接配置 const socket = io('http://192.168.1.15:8080', { transports: ['websocket'], upgrade: false, forceNew: true, reconnection: false, query: { EIO: 3 // 明确指定Engine.IO版本 } }) socket.on('connect', () => { console.log('连接成功') })4. 网络配置检查

其他注意事项
- 开发环境配置:
- 微信开发者工具 → 详情 → 本地设置 → 勾选"不校验合法域名、web-view域名、TLS版本以及HTTPS证书"
- 生产环境要求:
- 必须使用HTTPS和已备案域名
- 在微信公众平台配置服务器域名
- 替代方案:
- 如果仍然无法解决,可以考虑使用微信原生WebSocket API
// 微信原生WebSocket示例 const socket = wx.connectSocket({ url: 'ws://192.168.1.15:8080', success: () => console.log('连接成功'), fail: (err) => console.error('连接失败', err) })如果以上方法仍不能解决您的问题,可能需要检查:
- 后端是否真正启动了WebSocket服务
- 网络中间是否有代理或拦截
- 微信小程序基础库版本是否过旧
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报- 小程序尝试连接