SocketIO、Python-SocketIO 和 Flask-SocketIO 不匹配的问题

问题描述

flask 和 socket 的新手并从教程中学习。我在让客户端和服务器通过套接字相互通信时遇到问题。不断收到 400 错误。 我遇到了似乎是版本不匹配的常见问题,并阅读了各种帖子。但是,在我看来,我有正确的依赖项和版本。 接收错误

"The client is using an unsupported version of the Socket.IO or Engine.IO protocols"

许多谷歌搜索和阅读问题与图书馆作者的回应表明这是一个常见的依赖问题。但是,对于我在虚拟环境中运行的内容,我的所有版本似乎都是正确的:

  • Flask-SocketIO 5.0.1
  • Python-EngineIO 4.0.0
  • Python-SocketIO 5.0.4
  • npm socket.io 3.10 我真的很想继续我的应用程序,但我真的很难弄清楚为什么我的客户端和服务器在看起来一切正常时不会通过套接字进行通信。 任何帮助表示赞赏。运行 Debian Linux 仅供参考。

解决方法

确保您拥有所有内容的兼容版本。我不确定您使用的是什么 javascript 版本,但不同模块的版本很重要。

enter image description here 来源:https://python-socketio.readthedocs.io/en/latest/intro.html

我正在使用的组合如下:

  • socket.io.js 2.2.0
  • python-engineio 3.13.2
  • python-socketio 4.6.0

您可以尝试使用我在 github 页面上使用的 sample chat app