Socket.io没有明显的原因恢复到XHR / JSONP轮询

时间:2011-07-30 07:18:48

标签: javascript node.js socket.io

我认为Socket.IO应该选择最好的方法来查找与服务器的连接  在该系列中,

  Websocket , 
  FlashSocket  
  and then JSONP

但是我的服务器在节点0.4.9的顶部运行socket.io 0.7.7(在使用cygwin编译的Windows上),没有任何明显的原因进入XHR / JsonP轮询。我已经检查了80-89的所有端口只是为了确保,问题始终保持不变。

我还检查了两侧的控制台日志。 Firebug Gives没有错误只是向我显示XHR获取请求。

并在服务器控制台上,它给了我:

   info - socket.io started
   debug - client authorised  // i dunno why this is occuring though
   info - handshake autorised 154845454664764
   setting request Get/socket.io/1/xhr-polling/154845454664764
   debug - setting poll timeout

。 。 。等等 任何理由都在想家伙?

2 个答案:

答案 0 :(得分:1)

您可能正在使用Firefox that has WebSockets disabled的版本。

  

警告:除此之外,WebSockets目前还有一个关键原因   在Firefox 4和5中默认禁用是发现安全性   协议设计中的问题。在那些版本的中使用WebSockets   目前不建议在生产环境中使用Firefox。   如果你仍然希望尝试使用WebSockets,你可以这样做   打开about:config并设置network.websocket.enabled   偏好为真。你还需要设置   network.websocket.override-security-block首选项按顺序为true   允许初始化WebSocket连接。

答案 1 :(得分:1)

Firefox确实禁用了websockets。标准socket.io没有flashsocket,所以你必须将它添加到你的configuration =>

io.set('transports', [                     // enable all transports (optional if you want flashsocket)
    'websocket'
  , 'flashsocket'
  , 'htmlfile'
  , 'xhr-polling'
  , 'jsonp-polling'
]);

然后它应该可以正常工作。


debug - client authorised  // i dunno why this is occuring though

socket.io可以authorization