Autore Topic: Servizio per comunicazione device to device o device to cloud?  (Letto 639 volte)

Offline undead

  • Utente senior
  • ****
  • Post: 666
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S6
  • Play Store ID:
    DrKappa
  • Sistema operativo:
    Windows 10 64-bit, Windows 8.1 64-bit
Servizio per comunicazione device to device o device to cloud?
« il: 29 Gennaio 2016, 20:31:36 CET »
Questo topic nasce come costola della discussione relativa alle alternative di parse (in questi giorni tra l'altro hanno annunciato l'interruzione del servizio) aperta da tonno.

Fondamentalmente mi chiedevo se esisteva una soluzione decente per far comunicare tra loro due device. Per esempio prendo una chat testuale.

Si può usare GCM per cloud to device ma per device to cloud o device to device quali sono le soluzioni?

Da quanto ho capito per configurare un server GCM che supporta entrambe le direzioni si entra in un casino tra tomcat, xmpp e così via. Mi pare anche di aver capito che si possa utilizzare Google app engine (è corretto?), qualcuno ha esperienza in merito?

Altrimenti esistono alternative che abbiano dei limiti bilanciati? Per esempio 1 milione di notifiche push al giorno/mese ma sole 30 richieste al secondo è sbilanciatissimo.

O una soluzione open con possibilità di self hosting? Per la scalabilità mi rendo conto che chiedo troppo ma almeno qualcosa per iniziare...

Idee?

Offline zezzo

  • Nuovo arrivato
  • *
  • Post: 33
    • Mostra profilo
Re:Servizio per comunicazione device to device o device to cloud?
« Risposta #1 il: 29 Febbraio 2016, 17:40:03 CET »
Topic interessante, a maggior ragione per chi come me conosce ancora poco il mondo android, peccato per lo "scarso contributo"... (Daje regaaaa!!!)

Cmq. tempo fa avevo letto un po la guida di gcm, e in questi giorni mi ci sono rimesso su, volevo solo segnalare che gcm oltre al cloud to device, permette anche il device to cloud almeno nell'attuale versione (quelle precedenti non le ho provate), questo usando xmpp invece di http. riporto un breve stralcio della guida.

"You can continue to use the HTTP request mechanism to send messages to GCM servers, side-by-side with CCS which uses XMPP. Some of the benefits of CCS include:

The asynchronous nature of XMPP allows you to send more messages with fewer resources.
Communication is bidirectional—not only can your server send messages to the device, but the device can send messages back to your server.
The device can send messages back using the same connection used for receiving, thereby improving battery life.
"

La seconda cosa che volevo segnalare è un articolo/tutorial (diviso in 3 parti) proprio sull'esempio richiesto "una chat testuale" (senza tomcat) tra le varie letture che mi sono fatto è stato il più esauriente in merito, quando ho tempo vorrei provare ad implementare la cosa.

Android Building Realtime Chat App using GCM, PHP & MySQL – Part 1 http://www.androidhive.info/2016/02/android-push-notifications-using-gcm-php-mysql-realtime-chat-app-part-1

Per quanto riguarda le alternative che dicevi, anche io mi sto guardando intorno, per ora oltre a gcm ho testato anche questo

CloudAMQP https://www.cloudamqp.com/
Hanno un piano free ma in merito a "limiti bilanciati" che dicevi non sò valutare non avendo esperienza, anzi magari tu o chi legge può esprimere un giudizio sul piano free
il servizio è basato su RabbitMQ quindi volendo scalabile e self hosting avendo le aduguate conescenze sistemistiche.

Qui c'è un tutorial dal loro blog per implementare il tutto in android
Get started with RabbitMQ on Android (Android Studio) https://www.cloudamqp.com/blog/2015-07-29-rabbitmq-on-android.html

Ciao a presto. 

P.S. chi ha provato o trovato altre alternative, contribuisca, quete sono info utili ad ognuno di noi.


Offline undead

  • Utente senior
  • ****
  • Post: 666
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S6
  • Play Store ID:
    DrKappa
  • Sistema operativo:
    Windows 10 64-bit, Windows 8.1 64-bit
Re:Servizio per comunicazione device to device o device to cloud?
« Risposta #2 il: 06 Marzo 2016, 09:59:22 CET »
Mi era proprio sfuggita la tua risposta!

Ti ringrazio di aver risposto.

Anche io ho diversi dubbi, ultimamente non ho avuto tempo di approfondire.

RabbitMQ ha il problema di non passare da GCM, passare da GCM ha una serie di vantaggi non ultimo la vita della batteria.

Sicuramente la soluzione migliore è quella di gestirsi il proprio server, però non ho tempo di imparare a configurare e gestire un server XMPP. In teoria ci sarebbe la soluzione ibrida, cioè un normalissimo LAMP/WAMP che gestisce il device to cloud e poi spara su GCM la parte cloud to device (mi sembra sia l'esempio del tuo ultimo link).

Certo ci fosse un sistema già pronto sarebbe molto meglio!