Node.js Socket.io客户端切换到xhr轮询时出错

Node.js Socket.io客户端切换到xhr轮询时出错,node.js,sockets,socket.io,Node.js,Sockets,Socket.io,我正在运行一个带有Nodejs和Socket.io的聊天服务器,在一些浏览器中,一切正常,并且使用原生WebSocket 但在某些情况下,它使用xhr轮询有问题 Firebug输出: GET http://{domain}:8080/socket.io/1/?t={time} GET http://{domain}:8080/socket.io/1/xhr-polling/X_mBol8OqjbULLXozLc?t={time} 200 OK 2m Error: The connection t

我正在运行一个带有Nodejs和Socket.io的聊天服务器,在一些浏览器中,一切正常,并且使用原生WebSocket

但在某些情况下,它使用xhr轮询有问题

Firebug输出:

GET http://{domain}:8080/socket.io/1/?t={time}
GET http://{domain}:8080/socket.io/1/xhr-polling/X_mBol8OqjbULLXozLc?t={time} 200 OK 2m
Error: The connection to ws://{domain}:8080/socket.io/1/websocket/dsEWQdsaDWQEcHTR was interrupted while the page was loading
...yep.name="flashsocket",c.prototype.open=function(){var a=this, c=arguments; return...
GET http://{domain}:8080/socket.io/1/xhr-polling/X_mBol8OqjbULLXozLc?t={time} 200 OK 20s
GET http://{domain}:8080/socket.io/1/xhr-polling/X_mBol8OqjbULLXozLc?t={time} 200 OK 20s
Firebug屏幕截图:

客户信息:

  • 没有运行防病毒和代理应用程序
  • 客户正在使用现代bowser
  • 我使用这段代码来配置socket.io
socket.io配置:

io.configure(function(){
    io.enable('browser client minification');
    io.enable('browser client etag');
    io.enable('browser client gzip');
    io.set('transports', [
        'websocket'
        , 'flashsocket'
        , 'htmlfile'
        , 'xhr-polling'
        , 'jsonp-polling'
    ]);
});
加载页面时,与ws://{domain}:8080/socket.io/1/websocket/dsEWQdsaDWQEcHTR的连接被中断


这是问题的关键,我认为它无法返回到xhr轮询,因为通过ws连接时出错。

路由器设置页面中是否启用了DynamicNAT/LRU或NAT过滤?@PubNub我如何在CentOS中检查路由器设置?iptables?可能不是一个设置参数,因为存在您必须了解的一般硬件限制。