Определите типы транспорта на стороне клиента

Мне нужно использовать jsonp-polling для IE и xhr-polling для 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 "] , который имеет ту же последовательность, что и я определено на стороне сервера.

Почему не используется предыдущий вариант?

11
задан Wei An 14 June 2013 в 16:49
поделиться