使用socket.io client 开发时兼容IE低版本的办法
实战当中,发现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吗?