WebSocket connection to 'ws://ip:5000/socket.io/?EIO=4&transport=websocket&sid=UIt1XDrurIGk7QyNAAAI' failed: Invalid frame header

前言全局说明


一、问题

用 Python flask + js + websocket 搭建了一个网站,刚起的时候可以连接,也能正常执行命令,但大概几分钟后,就不行了。

报错:

WebSocket connection to 'ws://ip:5000/socket.io/?EIO=4&transport=websocket&sid=UIt1XDrurIGk7QyNAAAI' failed: Invalid frame header

二、网上的解决方法:

1. 修改配置文件(这里没有,也不知道取哪里修改,https://blog.csdn.net/weixin_53552934/article/details/125438549)
2. socket.io.js 版本低(经过测试:从4.2.0换到4.3.1,也没有解决)
3. 和心跳有关(但是,也不知道怎么设置)

三、可能的解决方法:

翻看源码时候,发现有些 io.connect 括号里有参数,
将:

var socket = io.connect();

改成

var socket = io.connect('http://你的网页IP:端口');

结果:
有一点作用,但没有完全解决。之前是总报错,但加入IP端口后,有成功
使用 var socket = io.connect('http://' + document.domain + ':' + location.port); 没成功


四、解决方法

更新 socket.io.min.js 文件版本,原来使用 4.2.0 报错,升级到4.7.4 版本就没有问题了。
(经过测试:4.2.0 ~ 4.6.2 都会出问题)

版本 状态 备注
4.7.5 OK 通过
4.7.4 OK 通过
4.6.2 提示:failed: Invalid frame header
4.5.4 提示:failed: Invalid frame header
4.4.1 提示:failed: Invalid frame header
4.3.2 提示:failed: Invalid frame header
4.3.1 提示:failed: Invalid frame header
4.2.0 提示:failed: Invalid frame header

五、WebSocke 介绍

https://blog.csdn.net/yiyueqinghui/article/details/88417756
https://blog.csdn.net/nihaoapengyou/article/details/111173377
https://blog.csdn.net/weixin_41217541/article/details/106354610

https://flask-socketio.readthedocs.io/en/latest/intro.html#version-compatibility (版本兼容说明)
image



免责声明:本号所涉及内容仅供安全研究与教学使用,如出现其他风险,后果自负。




参考、来源:
ChatGPT
https://blog.csdn.net/momoyaoquaoaoao/article/details/127256068
https://fanco.ink/post/SocketIO在flask中应用?page=6
https://blog.csdn.net/devshilei/article/details/131481881



posted @ 2024-04-07 17:18  悟透  阅读(231)  评论(0编辑  收藏  举报