python - 客户端正在使用不受支持的 Socket.IO 或 Engine.IO 协议版本错误
问题描述
我正在尝试在树莓派 4 中使用 flask_socketio、socketIO_client 和 SOCKET.IO 在 python 中运行客户端和服务器,但出现以下错误:
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)
192.168.1.80 - - [05/Feb/2021 18:30:41] "GET /socket.io/?EIO=3&transport=polling&t=NTpTT-L HTTP/1.1" 400 219 0.000618
这些是我当前的版本:
pi@raspberrypi:~/Desktop/EDAdataLogger $ npm list socket.io EDAdataLogger@ /home/pi/Desktop/EDAdataLogger └── socket.io@3.1.1
pi@raspberrypi:~/Desktop/EDAdataLogger $ npm list socket.io-client EDAdataLogger@ /home/pi/Desktop/EDAdataLogger └── socket.io-client@3.1.1
python-engineio==4.0.0
python-socketio==5.0.4
Flask==1.1.2
Flask-Session==0.3.2
Flask-SocketIO==5.0.1
如何定义 JavaScript Socket.IO 版本和 Socket.IO 协议修订版,以便根据 ( https://pypi.org/project/python-socketio/ ) 匹配所有内容?
我怎样才能解决这个问题?谢谢
解决方案
SocketIO似乎存在一些向后兼容性问题。您可以卸载python-engineio
, python-socketio
(Flask-SocketIO
为了安全起见)并重新安装较低版本。
对我有用的组合是:
Flask-SocketIO==4.3.1
python-engineio==3.13.2
python-socketio==4.6.0
推荐阅读
- google-cloud-platform - Google Cloud PubSub:如何仅读取最新记录
- php - PHP分层数组-检查子值是否存在,然后将父属性值分配给其子数组
- syslog-ng - 如何解析从 syslog-ng 获得的消息?
- php - 寻找一种在 PHP/Laravel 中存储和更新嵌套和索引 mongoDB 文档的方法
- python - PySpark 按月对数据框进行分组
- path - 函数 addpath() 不会允许访问子文件夹中的文件
- python - 将两个列表与键和值组合成一个字典并转换为数据框
- javascript - 如何在单击时更改菜单的可见性
- tensorflow - 将 tensorflow 模型用作独立图和子图
- c++ - 使用 std::mutex 复制省略