muszę korzystać jsonp-odpytywanie dla IE i XHR-odpytywanie dla Firefoksa, więc próbował definiować rodzaje transportów po stronie klienta jak ten:Definiowanie rodzajów transportu po stronie klienta
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);
}
Przetestowałem go w Firefoksie i dodałem logowanie do biblioteki socket.io-client. At
https://github.com/LearnBoost/socket.io-client/blob/master/dist/socket.io.js#L1509
się option.transports jest ["xhr-polling", "flashsocket", "htmlfile", "xhr-polling", "jsonp-polling"]
, co jest słuszne. Jednak w
https://github.com/LearnBoost/socket.io-client/blob/master/dist/socket.io.js#L1679
nie wiem dlaczego transporty zmienić ["htmlfile", "jsonp- polling", "xhr-polling"]
, który ma taką samą sekwencję jak co ja zdefiniowane po stronie serwera.
Dlaczego nie korzysta z poprzedniej opcji?
Nie masz pewności, na czym polega pytanie, czy podana sekwencja - 'xhr-polling', itp., Jest zignorowana, a zamiast tego' htmlfile' idzie pierwsza? Czy ten problem jest replikowany przy użyciu pliku socket.io '0.8.7'? –
Dziękuję za twoje pytanie! To była odpowiedź na mój koszmar z FireFox. Dokumentacja Socket.io jest bardzo zła. To jedyne miejsce, w którym znalazłem opcje transportu. :) –