Sto lavorando su un requisito simile e Guardando il requisito di poter mostrare feedback come digitando/lastseen ecc., Secondo la mia conoscenza, la soluzione basata su XMPP sarebbe appropriata.
puoi provare con il server xmpp disponibile come ejabberd/mangooseim (open source) installandolo sul tuo server e utilizzare asmack o qualsiasi altra libreria java lato client per comunicare con il tuo server. (Ci sono molti tutorial disponibili per questo).
Con questa configurazione, sarete in grado di arrivare allo stadio in cui sarete in grado di ottenere lo stato come "digitazione", "andato" quale whatsapp e anche alcuni client di chat come gtalk/pidgin shows.
Darebbe approssimativamente un'idea di come funzionano i client di chat esistenti.
Ejabberd è completamente scritto in erlang e se si desidera estendere qualsiasi funzionalità, la conoscenza di erlang è obbligatoria. (è specificamente progettato per sistemi altamente tolleranti e non-stop, che è stato utile nelle applicazioni di chat
GCM sarebbe sicuramente in grado di comunicare tra i telefoni Android 99,99% di volte con non molto ritardo ma se si desidera di avere lo status torrefattori come normali applicazioni di chat, si dovrà reinventare completamente la ruota
Aggiornamento:..
Ecco le considerazioni
dal client a al cliente BI desidera inviare messaggi di chat con ro astri e non è necessario memorizzare i messaggi su qualsiasi server centrale ma solo sui client: XMPP (come whatsapp)
nel caso in cui sia necessario memorizzare tutte le comunicazioni nel server: XMPP con driver sql o driver mongodb/gcm (in base sul tempo e sulle risorse)
nel caso in cui sia necessaria la comunicazione tra dispositivi non necessariamente in chat, quindi gcm dovrebbe essere sufficiente. Attualmente sto usando questo approccio nella mia app che è in diretta su playstore con la versione beta e funziona perfettamente nella maggior parte dei casi. Finora non ho visto molti colli di bottiglia.
Harvey, Sei riuscito a completare la chat con gcm o ejabberd? e ogni problema in quanto tale quando viene portato in produzione? – Ramesh
Harvey sono in confusione circa lo stesso e con requisiti simili .. puoi aiutarmi a decidere se devo usare GCM per salvare il mio scopo o no? @Ramesh quali sono le tue opinioni? – Newbiee
Hey newbiee, ho aggiornato la risposta. puoi indicare quali fattori ti stanno confondendo !! – Ramesh