socket.io不能使用传输:['xhr-polling']

Geo*_*old 4 node.js socket.io-1.0

我试图在socket.io中测试回退到轮询,以验证我的应用程序是否适用于不支持websockets的客户端.

我正在使用Express 4的基本服务器/客户端示例.它适用于:

// client-side
var options = {
   transports: [ 'xhr-polling', 'websocket' ]
};

var socket = io.connect('http://localhost:8080', options);
socket.on('news', function (data) {
  console.log(data);
  socket.emit('my other event', { my: 'data' });
});
Run Code Online (Sandbox Code Playgroud)

但是,如果我从传输中删除'websocket',则客户端端没有任何反应 - 没有错误,没有事件,没有任何事情.在服务器端,我只看到:

Tue, 03 Mar 2015 16:45:49 GMT socket.io:server serve client 304
Run Code Online (Sandbox Code Playgroud)

Geo*_*old 9

我弹出了源代码,发现socket.io.js正在检查字符串polling而不是xhr-polling.这样可行:

var options = {
   transports: [ 'polling' ]
};
Run Code Online (Sandbox Code Playgroud)