我正在使用带有Node.js的socket.io。一切都适用于websockets,但我必须支持像IE6和类似的老客户端。我在使用XHR(在IE6上根本不起作用)和htmlfile(从服务器发送工作,但从客户端发送仅适用于第一条消息)时遇到了很多麻烦。变得绝望,我切换到JSONP,一切都很好。
查看socket.io documentation,建议的顺序是:
io.set('transports', [
'websocket'
, 'flashsocket'
, 'htmlfile'
, 'xhr-polling'
, 'jsonp-polling'
]);
当JSONP似乎比htmlfile和xhr-polling更可靠时,为什么推荐这样做?
答案 0 :(得分:1)
这是我发现的:
JSONP使用Firefox在屏幕上产生难看的闪烁,并且与Opera不兼容。因此,对于较旧的Firefox版本和Opera,XHR更好。最佳解决方案似乎是在检测到浏览器和版本后在客户端上配置传输。