WebSockety z fallbackiem do Flasha
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
| System | Przeglądarka | WebSocket | Flash WebSocket |
|---|---|---|---|
| OS X Lion | Safari 5.1 | działa | - |
| Ubuntu 11.04 | Chrome / Chromium 12, 13, 14, 15, 16 | działa | - |
| Debian 6.0 | Firefox / Iceweasel 9 | działa | - |
| Ubuntu 11.04 | Firefox 5, 6 * | nie działa | działa |
| Ubuntu 11.04 | Opera 11.50 | nie działa | działa |
| Windows XP, SP3 | Internet Explorer 8 | nie działa | działa |
| Windows XP, SP2 | Internet Explorer 7 | nie działa | działa |
| Windows XP, SP1 | Internet Explorer 6 | nie działa | działa |
| Android 2.3.3 | Internet | nie działa | działa |
| Android 2.3.3 | Dolphin Browser HD 6.0 | nie działa | nie działa |
| Android 2.3.3 | Opera Mobile 11.1 | nie działa | nie działa |
| Android 2.3.3 | Firefox for Android 6.0 | nie działa | nie 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ę.





