socket.io 不适用于传输:[ 'xhr-polling' ]
socket.io doens't work with transports: [ 'xhr-polling' ]
我正在尝试测试回退到 socket.io 中的轮询,以验证我的应用程序是否适用于出于任何原因不支持 websockets 的客户端。
我正在使用非常 basic server/client example 的 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' });
});
但是,如果我从传输中删除 'websocket',则客户端不会发生任何事情 - 没有错误,没有事件,什么也没有。在服务器端我只看到:
Tue, 03 Mar 2015 16:45:49 GMT socket.io:server serve client 304
我打开源代码,发现 socket.io.js 现在正在检查字符串 polling
而不是 xhr-polling
。所以这有效:
var options = {
transports: [ 'polling' ]
};
我正在尝试测试回退到 socket.io 中的轮询,以验证我的应用程序是否适用于出于任何原因不支持 websockets 的客户端。
我正在使用非常 basic server/client example 的 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' });
});
但是,如果我从传输中删除 'websocket',则客户端不会发生任何事情 - 没有错误,没有事件,什么也没有。在服务器端我只看到:
Tue, 03 Mar 2015 16:45:49 GMT socket.io:server serve client 304
我打开源代码,发现 socket.io.js 现在正在检查字符串 polling
而不是 xhr-polling
。所以这有效:
var options = {
transports: [ 'polling' ]
};