如何获取JavaScript Socket.IO版本?

如何获取JavaScript Socket.IO版本?,javascript,socket.io,flask-socketio,Javascript,Socket.io,Flask Socketio,我在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) 通过搜索,我找到了SocketIOs的文档,这表明我的系统中存在版本不兼容问题 我想知道我有哪个版本的JavaScript

我在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)
通过搜索,我找到了SocketIOs的文档,这表明我的系统中存在版本不兼容问题

我想知道我有哪个版本的JavaScript Socket.IO。如何做到这一点

系统详细信息

如果不是很明显,我是JavaScript新手

操作系统:macOS版本10.15.7 JavaScript版本:1.7 指向 浏览器:谷歌Chrome 87.0.4280.88版 Python版本:3.8.6 Python虚拟环境中的包:
冲突可能是由于在客户端和服务器上使用了不同的协议修订

发件人:

该协议定义了客户端和服务器之间交换的数据包的格式。客户端和服务器都必须使用相同的版本,以便相互理解

要确定客户的修订号

从HTML:

常量套接字=io'http://localhost'; const revisionNumber=socket.protocol; 或来自JavaScript:

const io=需要“socket.io客户端”; //或者使用导入语法 从“socket.io客户端”导入{io}; const revisionNumber=io.protocol; 或从Flask SocketIO源代码:

在文件uuu init_uuu.py中搜索uuu版本。该行将如下所示: 使用该_版本_值,查找相应的Socket.IO协议版本:
冲突可能是由于在客户端和服务器上使用了不同的协议修订

发件人:

该协议定义了客户端和服务器之间交换的数据包的格式。客户端和服务器都必须使用相同的版本,以便相互理解

要确定客户的修订号

从HTML:

常量套接字=io'http://localhost'; const revisionNumber=socket.protocol; 或来自JavaScript:

const io=需要“socket.io客户端”; //或者使用导入语法 从“socket.io客户端”导入{io}; const revisionNumber=io.protocol; 或从Flask SocketIO源代码:

在文件uuu init_uuu.py中搜索uuu版本。该行将如下所示: 使用该_版本_值,查找相应的Socket.IO协议版本: 我找到了解决办法。 这是我的index.html文件的头的样子:

<title>Chat Room</title>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/1.4.8/socket.io.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
</head>
我在youtube上的一些教程中找到了这个脚本。我正在Pycharm上编程,当我左键单击此行中的链接时: 它打开了一个弹出窗口,询问我是否要安装该软件包

希望这对你有用 要查看代码的javaScript部分,可以查看我的问题: 我找到了一个解决办法。 这是我的index.html文件的头的样子:

<title>Chat Room</title>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/1.4.8/socket.io.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
</head>
我在youtube上的一些教程中找到了这个脚本。我正在Pycharm上编程,当我左键单击此行中的链接时: 它打开了一个弹出窗口,询问我是否要安装该软件包

希望这对你有用 要查看代码的javaScript部分,可以查看我的问题:

好的,多亏了前面两个问题的答案,我终于找到了如何识别JavaScript Socket.IO的版本

我无法更快地找到的根本原因是:

我继承了这个代码库,所以我不知道它在哪里导入了什么 我真的不知道 JavaScript Socket.IO的版本在templates目录的layout.html中调用,请参阅。元素中嵌入了socket.io.js脚本:

它明确地将JavaScript Socket.IO的版本命名为2.0.4


因此,根据Flask SocketIO的要求,我现在将Flask SocketIO固定在我的包的要求中,比如:Flask SocketIO>=4.3.2,好的,由于前面两个问题的答案,我终于找到了如何识别JavaScript Socket.IO的版本

我无法更快地找到的根本原因是:

我继承了这个代码库,所以我不知道它在哪里导入了什么 我真的不知道 JavaScript Socket.IO的版本在templates目录的layout.html中调用,请参阅。元素中嵌入了socket.io.js脚本:

它明确地将JavaScript Socket.IO的版本命名为2.0.4


因此,根据Flask SocketIO的要求,我现在将Flask SocketIO固定在我的包的要求中,如:Flask SocketIO>=4.3.2,好的,这将显示我有多像noob。我如何才能找到你发布的HTML代码块的socket.io.js路径?感谢你更新了@terrymorse的答案,我用Python虚拟环境的详细信息更新了我的问题。我拥有的Flask SocketIO版本是5.0.1。然而,我对识别我的JavaScript Socket.IO版本很感兴趣,因为这正是我需要匹配Python的地方。没错,我不是从HTML文件加载的。如何获取JavaScript套接字IO版本?之后我运行了这个问题中提供的JavaScript
r运行npm install socket.io-client,输出为5。这仍然不能回答我的问题,我正在寻找JavaScript Socket.IO版本,而不是客户端版本。我同意您对匹配版本的引用,因此我需要将JavaScript Socket.IO版本与我的客户机版本匹配。另外,再次感谢您迄今为止的指点我认为我的服务器是Google Chrome,还是Google Chrome是我的客户端?我用的是烧瓶,现在弄糊涂了。我所知道的是,当我的Flask SocketIO、python engineio和python SocketIO版本似乎都与图表兼容时,我收到了一条日志消息,其中提到了不受支持的版本,因此我想我需要将我的系统与JavaScript Socket.IO的版本相匹配。很抱歉把这个答案搞得太复杂了@terrymorse,谢谢你的帮助help@IntrastellarExplorersocet.io客户端代码在浏览器中运行,服务器代码在服务器上运行。看见还可以看看这个github的问题。好的,这将揭示我是一个多么的noob。我如何才能找到你发布的HTML代码块的socket.io.js路径?感谢你更新了@terrymorse的答案,我用Python虚拟环境的详细信息更新了我的问题。我拥有的Flask SocketIO版本是5.0.1。然而,我对识别我的JavaScript Socket.IO版本很感兴趣,因为这正是我需要匹配Python的地方。没错,我不是从HTML文件加载的。如何获取JavaScript套接字IO版本?在运行npm install Socket.IO-client之后,我运行了本问题中提供的JavaScript,输出为5。这仍然不能回答我的问题,我正在寻找JavaScript Socket.IO版本,而不是客户端版本。我同意您对匹配版本的引用,因此我需要将JavaScript Socket.IO版本与我的客户机版本匹配。另外,再次感谢您迄今为止的指点我认为我的服务器是Google Chrome,还是Google Chrome是我的客户端?我用的是烧瓶,现在弄糊涂了。我所知道的是,当我的Flask SocketIO、python engineio和python SocketIO版本似乎都与图表兼容时,我收到了一条日志消息,其中提到了不受支持的版本,因此我想我需要将我的系统与JavaScript Socket.IO的版本相匹配。很抱歉把这个答案搞得太复杂了@terrymorse,谢谢你的帮助help@IntrastellarExplorersocet.io客户端代码在浏览器中运行,服务器代码在服务器上运行。看见另请参阅此github问题。socket.io版本是否显示在您的第一个脚本标记:/libs/socket.io/1.4.8/…中?是的,还忘了提到这一点。它必须是3.0.5,是不是第一个脚本标记中显示的socket.io版本:/libs/socket.io/1.4.8/…?是的,还忘了提到这个。它需要是3.0.5
+--------------+----------------+
| __version__  |  protocol rev. |
+--------------+----------------+
|    4.x.x     |     3, 4       |
+--------------+----------------+
|    5.x.x     |     5          |
+--------------+----------------+
<title>Chat Room</title>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/1.4.8/socket.io.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
</head>