Мне нужно использовать jsonp-опрос для IE и xhr-опрос для Firefox, поэтому я попытался определить типы транспорта на стороне клиента следующим образом:
if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)){ //test for Firefox/x.x or Firefox x.x (ignoring remaining digits);
var socket = io.connect(VG.NODE_SERVER_URL,{
transports:['xhr-polling']
});
} else if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)){
var socket = io.connect(VG.NODE_SERVER_URL,{
transports:['jsonp-polling']
});
} else {
var socket = io.connect(VG.NODE_SERVER_URL);
}
Я протестировал его на Firefox идобавлено ведение логов на socket.io-client lib.На
https://github.com/LearnBoost/socket.io-client/blob/master/dist/socket.io.js#L1509
параметр option.transports равен ["xhr-polling", "flashsocket", "htmlfile",
"xhr-polling", "jsonp-polling"]
, что верно.Однако на
https://github.com/LearnBoost/socket.io-client/blob/master/dist/socket.io.js#L1679
Я не знаю, почему транспорты меняются на ["htmlfile", "jsonp-
polling", "xhr-polling"]
, который имеет ту же последовательность, что и я на стороне сервера.
Почему он не использует предыдущую опцию?