我在端口3000上运行的socket.io服务器运行完美。所有socket.emit和其他操作都通过websocket连接工作。
但是,一旦我尝试在端口80上运行服务器,请更改
app.listen(3000) to app.listen(80)
并进行了所有必要的客户端更改,socket.io停止使用websocket并切换到xhr轮询
warn - websocket connection invalid
info - transport end
debug - set close timeout for client 1830609591747620770
debug - cleared close timeout for client 1830609591747620770
debug - cleared heartbeat interval for client 1830609591747620770
debug - setting request GET /socket.io/1/websocket/1830609591747620770
debug - set heartbeat interval for client 1830609591747620770
warn - websocket connection invalid
info - transport end
debug - set close timeout for client 1830609591747620770
debug - cleared close timeout for client 1830609591747620770
debug - cleared heartbeat interval for client 1830609591747620770
debug - setting request GET /socket.io/1/xhr-polling/1830609591747620770?t=1338511205390
debug - setting poll timeout
debug - client authorized for
debug - clearing poll timeout
debug - xhr-polling writing 1::
debug - set close timeout for client 1830609591747620770
debug - setting request GET /socket.io/1/xhr-polling/1830609591747620770?t=1338511205500
debug - setting poll timeout
debug - discarding transport
有关为什么切换到xhr轮询以及我可以尝试的任何想法?
由于
编辑::我是否也在运行快速Web服务器和Web套接字服务器这一事实?因为在我的代码中,我已经启动并运行。如果这导致问题,我该如何解决这个问题?
答案 0 :(得分:4)
我还没弄清楚为什么它会切换到XHR轮询,但出于我的目的只想让websocket服务器在端口80上工作,我如何解决我的问题是使用node-http-proxy包{{3} }
我保持我的代码相同,但让代理侦听端口80,并将其路由到我的websocket正在侦听的端口3000。
答案 1 :(得分:0)
警告'websocket connection invalid'似乎表明端口80上的防火墙/防病毒安全阻止Web套接字存在问题。有关此类问题的完整列表,请检查Socket.io and firewall software
使用http://websocketstest.com/上的测试/诊断页面查看您的网络兼容性。
希望这有帮助。