使用socket.io client 开发时兼容IE低版本的办法
发布于 12 年前 作者 evila 19926 次浏览 最后一次编辑是 8 年前

实战当中,发现IE系列浏览器,无法兼容socket.io client,向Server端无法接收、发送,经查资料,需要实例化时一下增加判断加些参数即可。

下面代码在经典的socket聊到室应用当中,IE6以上一切正常。

if (/Firefox/\s/.test(navigator.userAgent)){ var socket = io.connect(‘127.0.0.1:8000’,{transports:[‘xhr-polling’]}); } else if (/MSIE (\d+.\d+);/.test(navigator.userAgent)){ var socket = io.connect(‘127.0.0.1:8000’,{transports:[‘jsonp-polling’]}); } else { var socket = io.connect(‘127.0.0.1:8000’); }

2 回复

socket.io提供了针对各个版本浏览器的‘socket’功能的封转:websocket,长连接,流,flash什么的。给你格式化下代码:

if (/Firefox\/\s/.test(navigator.userAgent)){
    var socket = io.connect('127.0.0.1:8000',{transports:['xhr-polling']}); 
} 
else if (/MSIE (\d+.\d+);/.test(navigator.userAgent)){
    var socket = io.connect('127.0.0.1:8000',{transports:['jsonp-polling']}); 
} 
else { 
    var socket = io.connect('127.0.0.1:8000'); 
}

那用IE9 +会判断成MSIE吗?

回到顶部