websocket 客户端正在使用不受支持的Socket.IO或Engine.IO协议版本(此错误的进一步发生将以级别INFO记录)

vwkv1x7d  于 6个月前  发布在  其他
关注(0)|答案(1)|浏览(63)

我正在使用Flask和SocketIO。我在Flask控制台上获得The client is using an unsupported version of the Socket.IO or Engine.IO protocols (further occurrences of this error will be logged with level INFO)
以下是我的版本:

bidict==0.22.1
click==8.1.3
colorama==0.4.6
Flask==2.2.2
Flask-SocketIO==5.3.6
h11==0.14.0
itsdangerous==2.1.2
Jinja2==3.1.2
MarkupSafe==2.1.1
numpy==1.25.1
opencv-python==4.8.0.74
python-engineio==4.8.0
python-socketio==5.10.0
simple-websocket==1.0.0
six==1.16.0
Werkzeug==2.2.2
wsproto==1.2.0

字符串
在HTML中的body的末尾,我有这些行:

<script src="/socket.io/socket.io.js"></script>
<script type="module" src="{{url_for('static', filename='js/video.js')}}"></script>


在我的video.js文件的顶部,我有这样一行:

import io from '/socket.io/socket.io.js';
var socket = io();


在我的Flask项目中,我已经组织成一个包,我在init.py中有这些行:

app = Flask(__name__)
app.debug = True
socketio = SocketIO(app)


另外,我有一个名为run.py的文件,其中包含以下内容:

from mypackage import app, socketio

if __name__ == '__main__':
    socketio.run(app)


我试过降级到socketio 4.3.2版本,由于一些奇怪的原因,这只会导致Werkzeug错误兼容性问题。
我在网上找了很多没有帮助的解决方案。
据我所知,socket.io.js文件是由Flask socketio生成的,所以它应该是自动兼容的?
我试着在开发工具中查看JavaScript文件。当通过复制URL http://127.0.0.1:5000/socket.io/socket.io.js访问链接时,我只得到一个文本正文“The client is using an unsupported version of the Socket.IO or Engine.IO protocols”。
我已经花了近3个小时在这个问题上。请帮助。

b5buobof

b5buobof1#

错误很明显:“Theclientis using an unsupported version of.

<script src="/socket.io/socket.io.js"></script>

字符串
与此处的服务器版本不兼容:

python-engineio==4.8.0
python-socketio==5.10.0


因此,首先确定您拥有的客户端版本,然后查看文档中的版本兼容性表,以确保您在客户端和服务器上使用的是一组兼容版本。

相关问题