使用socket.io client 开发时兼容IE低版本的办法
 发布于 13 年前  作者 evila  21069 次预览  最后一次回复是 13 年前  来自  

实战当中,发现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 回复
sumory

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'); 
}
sultra

那用IE9 +会判断成MSIE吗?