2013-05-21 11 views
8

Mam zamiar rozpocząć projekt dla klienta, który ma dużo danych, które muszą być w czasie rzeczywistym.Obsługa Websockets na Androidzie

Są dwie aplikacje mobilne, które będę budować z trigger.io, a także interfejs internetowy, a wszystkie z nich muszą pozostać zsynchronizowane.

Mam zamiar użyć implementacji socketSio WebSocket z moim backendem Node.js dla aplikacji mobilnych webapp &. To zadziała dobrze na iOS i nowoczesnych przeglądarkach internetowych.

Jednak przeglądarka internetowa Androida nie obsługuje w ogóle stron internetowych. I po prostu zniszczyłby plan danych użytkownika aplikacji mobilnej, gdyby socket.io wykorzystał awarię długoterminowego odpytywania na Androidzie.

Zastanawiam się: czy istnieje możliwość wdrożenia Java WebSockets dla systemu trigger.io Android, a następnie udostępnienia go w WebView? Jest simple implementation dla phonegap

Przypuszczam, że mógłbym napisać plugin dla trigger.io, ale chcę się upewnić, zanim wskoczę do tego projektu, jeśli jest to wykonalne/nie jest zbyt trudne do napisania wtyczki.

Użyłem trigger.io dawno temu, ale nie, ponieważ wszystkie fankcyjność wyszło jak natywne wtyczki.

+0

Używam API JS Pusher w aplikacji trigger.io. Działa świetnie na iOS i Android (z powrotem do wersji 2.3). Czy brałeś pod uwagę coś w rodzaju Meteor lub Derby? – Meirion

+0

Wiem, że to zadziała, ale zastanawiam się nad długotrwałym wpływem pollingu na plan transmisji danych użytkownika. –

+0

@AndyJoslin, co w końcu zrobiłeś? Dzięki! –

Odpowiedz

4

Jeśli skorzystanie z rozwiązania zastępczego HTTP nie jest opcją (wykonałbym obliczenia w celu ustalenia, czy przesyłanie strumieniowe lub rozwiązanie z długim odpytywaniem naprawdę "zniszczyłoby plan danych użytkowników mobilnych"), to najlepsze rozwiązanie do dodania WebSocket wsparcie prawdopodobnie byłoby pluginem trigger.io.

W Pusher użyliśmy opakowania Java w PhoneGap, aby nasza biblioteka JavaScript działała. Od tego czasu dodaliśmy awarię HTTP, więc nie polecam nikomu tego używać teraz. Projekt jest tutaj: https://github.com/pusher/pusher-phonegap-android

Problem z owijki tutaj Java (używamy websocket-android-phonegap) jest to, że nie obsługuje połączenia SSL (jeśli dobrze pamiętam) i nie został zaktualizowany przez długi czas.

Mając to na uwadze, kiedy stworzyliśmy Pusher Java library (który obsługuje Androida) użyliśmy klienta WebSocket w Java-WebSocket, ponieważ jest on aktywnie rozwijany i obsługuje połączenia SSL. Poleciłbym to.

Chciałbym usłyszeć o wsparciu, które zapewnia https://github.com/mkuklis/phonegap-websocket.

+0

Masz rację, zgaduję, że długa ankieta to "super zło" - zagłębię się w nią jeszcze bardziej! I dziękuję za link biblioteki pusher java, I'll spójrz na to. –

+0

Strumienie HTTP będzie bardziej efektywne, ponieważ połączenie strumieniowe będzie się utrzymywać i nie będzie się otwierać/zamykać, jak ma to miejsce w połączeniu z długim pollingiem. – leggetter

+0

fajne! Sprawdziłem ... nawet nie wiedziałem, jak to działa, haha. Wydawało mi się, że długi czas odpytywania to "wysyłanie żądań HTTP co X sekund w celu sprawdzenia statusu serwera" - ale jest dużo inaczej –