我在端口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);
答案 0 :(得分:1)
据我所知,node-http-proxy不适用于带有Node>的WebSockets。 0.6.x因为一个bug(这是几周前)。他们说他们正在修复,所以他们可能还没有解决这个问题。如果无法解决问题,请尝试bouncy。
答案 1 :(得分:0)
你不应该在地址127.0.0.1:3030上索取socket.io吗?并连接到mydomain.com:3030。
如果我理解正确,你可以在3030端口上运行快速应用程序,这样你就需要连接到客户端JS。
$(function() {
console.log('connecting to chat...')
var socket = io.connect('http://mydomain.com:3030');
socket.on('connected',function(){
console.log('connected')
});
});
我猜......