如何配置socket.io 1.3.7首先使用websocket

时间:2015-12-07 12:25:40

标签: node.js websocket socket.io

将socket.io升级到1.3.7之后

io.set("transports", ["websocket", "xhr-polling"]);

不再工作,我在哪里配置这些选项? (我无法在官方文档中找到此信息)

2 个答案:

答案 0 :(得分:2)

您可以像这样配置传输首选项:

// server
var io = require('socket.io')({
  transports : [ 'websocket', 'xhr-polling' ]
});

默认情况下,socket.io@1会尝试升级到Web套接字(如果可用),但最初,客户端将始终尝试使用XHR / JSONP进行连接,并在可用时升级到Web套接字。

这种行为可能令人困惑(我第一次使用它时让我感到困惑),因为它看起来像是XHR轮询。它记录在here

  

Socket.IO从不认为WebSocket会起作用,因为在实践中它很可能不会。相反,它立即与XHR或JSONP建立连接,然后尝试升级与WebSocket的连接。与依赖超时的后备方法相比,这意味着您的用户都不会有降级的体验。

答案 1 :(得分:1)

你试过这个:

var socket = require('socket.io')({
  transports : ["websocket", "xhr-polling"]
});