2012-07-06 43 views
18

Stavo solo guardando il nuovo Google Cloud Messaging (GCM) e mi chiedevo se è possibile utilizzare GCM per Instant Messaging sulla tua applicazione Android?Instant Messaging su Android con Google Cloud Messaging

Ho visto che è possibile inviare dati, come un messaggio, da un server, ma è anche possibile inviare da un dispositivo a un altro? E come funzionerebbe? Qualche esempio di codice sarebbe molto utile ..

Tnx!

risposta

19

Lo official docs su Google Cloud Messaging per Android indica che GCM può essere utilizzato per sviluppare un'app di messaggistica istantanea.

... o potrebbe essere un messaggio contenente fino a 4 KB di carico utile di dati (in modo applicazioni come l'instant messaging possono consumare il messaggio direttamente).

Così siamo andati avanti e abbiamo creato un'app di messaggistica istantanea tramite GCM. Il lato server è alimentato da Google App Engine. Puoi leggere il tutorial completo qui. Create an Instant Messaging app using Google Cloud Messaging (GCM)

Quindi è possibile utilizzare GCM per Instant Messaging su Android, per rispondere alla tua domanda. Tuttavia, l'affidabilità di GCM rispetto a XMPP per IM è un altro argomento.

+0

Fantastico tutorial. Quanto tempo ti ci è voluto per creare questo? E quante persone erano coinvolte? – defhlt

10

Solo i miei due centesimi:

penso che non si dovrebbe usare GCM per la consegna di IM. Dovresti disporre di un server dedicato al quale connetteranno le tue applicazioni IM per Android, utilizzando una connessione socket persistente. Il tuo server saprà chi è online o no e quindi può presentare un 'elenco online' a tutte le app.

GCM può entrare in gioco, mentre gli utenti sono offline o non eseguono la tua app. Un messaggio GCM può essere inviato a loro per indicare "XXXX vuole chattare". Possono quindi avviare la tua app e collegarsi automaticamente a una sessione di chat.

Google ha dichiarato che la consegna dei messaggi GCM non è garantita. Solo questo motivo non è una buona idea affidarsi a questi per Instant Messaging.

+0

E sai un qualche tipo di alternativa per IM? tnx – dumazy

+5

IM è una bestia complessa, è meglio non reinventare le ruote se possibile. Effettua una ricerca su google su XMPP, potresti trovare una soluzione gratuita o economica che puoi integrare nel tuo ambiente. Vedi anche questo argomento: http://stackoverflow.com/questions/4769020/android-and-xmpp-currently-available-solutions – azgolfer

+0

Ciao check out pub nub - è abbastanza facile da implementare - vedi se hanno un client java qui è una soluzione javascript funziona solo su dispositivi mobili. ozmike

0

Provare pub nub - è piuttosto facile da implementare - inviare Im da un cellulare a un altro - è sufficiente accendere la pagina Web (vedi link) nel browser e chattare tra pc, mobile - e funziona - con 'no server'. Il codice è per javascript ma hanno anche java. Chat app using jquerymobile web app framework

0

Si potrebbe voler verificare come un server invia un messaggio al servizio GCM. È possibile utilizzare php sul lato server, quindi dovrebbe essere possibile adattarlo a una richiesta POST direttamente dall'applicazione. Tuttavia, per comunicare è necessario l'ID registrato dei dispositivi a cui si desidera inviare i dati. Significa che avrai bisogno di qualcosa da archiviare e ottenere. La soluzione migliore sarebbe il proprio server (web) che memorizza tutti gli ID e gestisce l'invio dei messaggi.

Problemi correlati