NodeJS,http-proxy,socket.io

我正在端口3030上运行一个快速Web应用程序,但它通过http-proxy进行代理 。 该网站工作正常,但socket.io不会连接。 它接收我的控制台显示的东西:

debug - served static content /socket.io.js debug - client authorized info - handshake authorized 11319742841450363586 debug - setting request GET /socket.io/1/websocket/11319742841450363586 debug - set heartbeat interval for client 11319742841450363586 debug - client authorized for debug - websocket writing 1:: 

app.js

 app.listen(3030) io = require('socket.io') socket = io.listen(app) socket.on('connection', function(client) { console.log('new connection') }) 

chat.js

 $(function() { console.log('connecting to chat...') var socket = io.connect('http://mydomain.com:80') socket.on('connected',function(){ console.log('connected') }) }) 

但是,console.log语句都不会显示在客户端或服务器端。 我究竟做错了什么?

编辑 – 增加了http代理代码

 var httpProxy = require('http-proxy') , proxyTable = { router: { 'lou.mydomain.com': '127.0.0.1:3030' , 'foe.mydomain.com': '127.0.0.1:3000' // and some others } } , proxyServer = httpProxy.createServer(proxyTable); proxyServer.listen(80); 

据我所知,node-http-proxy不适用于Node> 0.6.x的WebSockets,因为有一个bug(这是几周前)。 他们说他们正在修理,所以他们可能还没有解决这个问题。 如果你不能得到这个工作,尝试有弹性 。

你不应该问地址127.0.0.1:3030 socket.io? 并连接到mydomain.com:3030,也。

如果我理解正确的话,你在3030端口上运行express应用程序,所以你需要在那里连接到客户端的JS。

 $(function() { console.log('connecting to chat...') var socket = io.connect('http://mydomain.com:3030'); socket.on('connected',function(){ console.log('connected') }); }); 

我猜…