socket.io能否侦听/连接到python http服务器?

socket.io能否侦听/连接到python http服务器?,python,node.js,socket.io,Python,Node.js,Socket.io,对不起,如果我没有使用正确的术语。我有一个运行在8000端口上的python HTTP服务器,它基本上相当于 python -m SimpleHTTPServer 8000 如果我尝试在同一端口上使用 var io = require('socket.io').listen(8000); 我得到以下错误 warn - error raised: Error: listen EADDRINUSE 我知道listen8000试图在端口8000上创建HTTP服务器,但该端口已在使用中,因此出现

对不起,如果我没有使用正确的术语。我有一个运行在8000端口上的python HTTP服务器,它基本上相当于

python -m SimpleHTTPServer 8000
如果我尝试在同一端口上使用

var io = require('socket.io').listen(8000);
我得到以下错误

warn  - error raised: Error: listen EADDRINUSE
我知道listen8000试图在端口8000上创建HTTP服务器,但该端口已在使用中,因此出现错误

所以我的问题是:是否可以在现有HTTP服务器上创建套接字连接,该服务器是在nodejs外部启动的?也就是说,是否可以使用此代码中的服务器

var server = require('http').createServer(handler)
var io = require('socket.io').listen(server)

是否由已运行的HTTP服务器替换?

否,您不能让socket.io从在nodejs环境之外创建的服务器进行侦听。而是使用Python websocket实现,例如。它是python中socket.io协议的实现,与几个著名的python服务器兼容

否则,我的建议是将这两台服务器分开,不要将它们组合在一起。这样,您就可以将主python Web服务器与nodejs websocket服务器分开。您可以创建单独的socket.io服务器,并将其绑定到Web服务器以外的其他端口:

var io = require('socket.io').listen(8001);
在前端,则需要连接到不同的socket.io服务器,例如:

var socket = io.connect('http://' + location.hostname + ':8001');