Jaki jest najlepszy sposób wykrywania obsługi WebSocket za pomocą Javascript?

Próbuję użyć Javascript do wykrycia, czy przeglądarka internetowa obsługuje witryny internetowe, ale używając tylko wykrywania opartego na funkcjach, otrzymuję fałszywe alarmy, więc dodałem test agenta użytkownika, aby zamiast tego wyrzucić urządzenia z Androidem. szczęśliwy z powodu. Mam kartę Samsung Galaxy Tab 2 i oto mój kod wykrywania:

var isSupported = (("WebSocket" in window && window.WebSocket != undefined) ||
                   ("MozWebSocket" in window));

/* This line exists because my Galaxy Tab 2 would otherwise appear to have support. */
if (isSupported && navigator.userAgent.indexOf("Android") > 0)
  isSupported = false;

if (isSupported)
  document.write("Your browser supports websockets");
else
  document.write("Your browser does not support websockets");

Ten kod wydaje się działać z IE, Firefox, Safari (w tym iPhone / iPad) i Chrome. Jednak sprawdzanie oparte na funkcjach powraca, gdy używam domyślnej przeglądarki mojego Samsunga Galaxy Tab 2, co jest niepoprawne, ponieważ ta przeglądarka faktycznie nie obsługuje gniazd sieciowych. Ponadto nie wiem, ile innych urządzeń z Androidem ma ten sam problem, więc w tej chwili jest to najlepsze rozwiązanie, o którym wiem, że jest wykrywane.

Czy jest lepszy sposób na wykrycie obsługi WebSocket niż to, co robię? Zdaję sobie sprawę, że istnieją obejścia dla Androida, takie jak używanie innej przeglądarki, co oznacza, że ​​mój kod wykrywający mój agent użytkownika nie jest dobry. Moim celem nie jest przede wszystkim poleganie na agencie użytkownika.

Jakieś sugestie?

questionAnswers(5)

yourAnswerToTheQuestion