WebSockety z fallbackiem do Flasha

Autor: nme · piątek, 29 Lipiec, 2011 · Brak komentarzy · Tagi: websocket, android ·

Kilka dni temu kolega śledząc moje eksperymenty z WebSocketami wspomniał o tym, że jako fallback dla przeglądarek nie wspierających natywnie WebSocketów można wykorzystać Flasha. Faktycznie — jak się okazało miałem nawet lokalnie sklonowane potrzebne repozytorium. Przez ten cały czas wgłębiania się w temat — zupełnie o nim zapomniałem. Efekty pracy autora zaskoczyły mnie bardzo pozytywnie.

Szczegóły

Aplikacja jest obecnie zgodna z Hybi-16.

Testowałem rozszerzone o Flashowy fallback demo opisane w poprzednim wpisie — nowa wersja dostępna jest tutaj. Wykonywałem testy zarówno dla ws:// jak i wss:// (TLS). Zarówno serwerowa implementacja, jak i web-socket-js pracują w oparciu o wersję protokołu WebSocket hixie-76. Fallback wymaga Adobe Flash 10+.

Wyniki przeprowadzonych testów

SystemPrzeglądarkaWebSocketFlash WebSocket
OS X LionSafari 5.1działa-
Ubuntu 11.04Chrome / Chromium 12, 13, 14, 15, 16działa-
Debian 6.0Firefox / Iceweasel 9działa-
Ubuntu 11.04Firefox 5, 6 *nie działadziała
Ubuntu 11.04Opera 11.50nie działadziała
Windows XP, SP3Internet Explorer 8nie działadziała
Windows XP, SP2Internet Explorer 7nie działadziała
Windows XP, SP1Internet Explorer 6nie działadziała
Android 2.3.3Internetnie działadziała
Android 2.3.3Dolphin Browser HD 6.0nie działanie działa
Android 2.3.3Opera Mobile 11.1nie działanie działa
Android 2.3.3Firefox for Android 6.0nie działanie działa

* Firefox 6 wspiera nieaktualną wersję protokołu — Hybi-07

Notatki

Firefox 6 wspiera WebSockety, ale w wersji protokołu Hybi-07, a obiekt nazywa się tam MozWebSocket.

Internet Explorer 8 ma wbudowanego Flasha — rozwiązanie działa bez instalacji Flash Playera.

Firefox, Dolphin i Opera na Androida — z drugiej strony — nawet pomimo instalacji wtyczki — nie obsługują Flasha. Szczerze powiedziawszy to nie wiem dla kogo ten problem jest większy — dla mnie, czy dla zespołów rozwijających te przeglądarki...

Z tego co wyczytałem Internet Explorer w wersji 6 może nie działać. Ale jak się okazuje — działa (być może dlatego, że pracujemy na domyślnym porcie — 80). Aktywność projektu web-socket-js jest zadowalająca — kilka problemów jest rozwiązywanych, np. Opera nie specjalnie radzi sobie z połączeniami nawiązanymi przez dłuższy czas.

Osobiście bardzo cieszy mnie fakt, że łącznie z domyślnym Androidowym Browserem — we wszystkich ważnych przeglądarkach — WebSockety działają! :)

Wspomnę na koniec, że web-socket-js ma już gotowy branch dostosowany pod nowszy draft — wersję protokołu hybi-07 — stanie się on domyślnym kiedy Chrome przejdzie na nowszą wersję.

Zostaw komentarz