2013-05-21 1 views
8

Sto per avviare un progetto per un client che ha molti dati che devono essere in tempo reale.Supporto per Websockets su Android

Ci sono due app mobili che realizzerò con trigger.io, così come un'interfaccia utente web, e tutti questi devono rimanere sincronizzati.

Ho intenzione di utilizzare l'implementazione WebSocket di socket.io con il mio backend Node.js per le app mobili web &. Questo funzionerà alla grande su iOS e sui moderni browser web.

Tuttavia, la visualizzazione Web di Android non supporta affatto le web socket. E distruggerebbe semplicemente il piano dati dell'utente dell'app mobile se socket.io usasse il suo fallback a lungo polling su Android.

Mi chiedevo: c'è qualche possibilità di un'implementazione di Java WebSockets per trigger.io Android, esponendola quindi a WebView? C'è un simple implementation per PhoneGap

Suppongo che potrei scrivere un plugin trigger.io per questo - ma voglio essere sicuro prima di saltare a questo progetto se questo è fattibile/non troppo difficile scrivere un plugin per.

Ho usato trigger.io molto tempo fa, ma non da quando tutte le fanciness sono uscite come plugin nativi.

+0

Sto utilizzando l'API JS di Pusher in un'app trigger.io. Funziona alla grande su iOS e Android (torna al 2.3). Hai considerato qualcosa come Meteor o Derby? – Meirion

+0

So che funzionerà, ma mi chiedo in merito all'effetto del polling lungo sul piano dati dell'utente. –

+0

@AndyJoslin, cosa hai fatto? Grazie! –

risposta

4

Se l'utilizzo di una soluzione di fallback HTTP non è un'opzione (eseguirò alcuni calcoli per determinare se una soluzione di streaming o long polling "distruggerebbe davvero il piano dati degli utenti mobili") quindi la soluzione migliore per aggiungere WebSocket il supporto sarebbe probabilmente un plugin trigger.io.

A Pusher abbiamo utilizzato un wrapper Java in PhoneGap per far funzionare la nostra libreria JavaScript. Tuttavia, da allora abbiamo aggiunto il fallback HTTP, quindi non consiglierei a nessuno di usarlo ora. Il progetto è qui: https://github.com/pusher/pusher-phonegap-android

Il problema con l'involucro Java qui (usiamo websocket-android-phonegap) è che non supporta le connessioni SSL (se non ricordo male) e non è stato aggiornato da molto tempo.

Con questo in mente quando abbiamo creato il Pusher Java library (che supporta Android) abbiamo utilizzato il client WebSocket in Java-WebSocket perché è attivamente sviluppato e supporta connessioni SSL. Lo raccomanderei.

Sarei interessato a conoscere il supporto fornito da https://github.com/mkuklis/phonegap-websocket.

+0

Hai ragione, ho immaginato che il lungo sondaggio fosse 'super male' - ci penserò di più! E grazie per il link della libreria java pusher, darò un'occhiata a questo. –

+0

Lo streaming HTTP sarà più efficiente in quanto la connessione di streaming è persistente e non si apre/chiude come fa la connessione con il polling lungo. – leggetter

+0

cool! L'ho cercato ... non sapevo nemmeno come funzionasse quella roba, ahah. Ho pensato che il polling lungo era "invia una richiesta HTTP ogni X secondi per controllare lo stato del server", ma è molto diverso. –