2014-06-27 13 views
5

Stiamo pianificando di utilizzare un'applicazione di messaggistica/chat su Android. Stiamo pianificando di utilizzare GCM per scambiare messaggi. Il modo tradizionale consiste nell'avere un server applicazioni per l'archiviazione tutto il gcmid degli utenti e se utente1 vuole inviare un messaggio all'utente2,Notifica da dispositivo a dispositivo tramite Android gcm senza server di terze parti

1. L'utente1 invia il messaggio al server delle applicazioni con carico utile che contiene l'ID del messaggio e del destinatario cioè utente2 2. Il server delle applicazioni recupera il gcmid di utente2 e chiama sender.send (regid2, message) 3.User2 riceve il messaggio.

Vedo che è solo un'API REST Chiama allo https://android.googleapis.com/gcm/send.

Quindi se sommo utente1 ha il gcmid di utente2 perché non possiamo chiamare direttamente l'API gcm dal dispositivo utente1 per ridurre il carico sul server e il costo delle operazioni su server.Pls mi consiglia su questo.

Nota: non si prevede di utilizzare upstreaming

+0

hai risolto il problema? puoi inviare dati ad un altro androide senza utilizzare il server? –

risposta

0

Quindi, se in qualche modo user1 ha il gcmid di user2 ...

Penso che questo è proprio qui che la difficoltà sta. Se chiami direttamente l'API GCM dal dispositivo, devi trasferire gcmid da un dispositivo all'altro, e la soluzione di gran lunga più semplice e scalabile che riesco a pensare è quella di utilizzare un server, raggiungibile da tutti i dispositivi.

+0

Vorrei memorizzare gcm di tutti gli amici utenti sul dispositivo per ridurre la dipendenza del server e quindi ridurre il costo di manutenzione giornaliero di GAE in cui stiamo pianificando di eseguire il server. Quindi vorrei sapere se è il modo giusto per fare chiamate gcm direttamente dal dispositivo Android – user2653234

1

ho fatto lo stesso utilizzando il tutorial Device_To_Device_Messaging_Using_Google_Cloud_Messaging_GCM_-_Android_Example. questo tut sta avendo sia sever che codice client usando gcm. percorrilo, ti aiuterà a ottenere ciò che desideri.

+0

Grazie per le informazioni. Siamo stati in grado di fare push attraverso il dispositivo direttamente senza server. La mia domanda è di circa quind i problemi in futuro – user2653234

+0

ahhh , troppa limitazione nell'usare questo, perché non è possibile inviare più di 4kb. Le notifiche di data.push richiedono tempo. Inoltre, non è possibile trasferire file come audio, video, images.etc. – Dev

+0

l'esempio suggerito sta ancora utilizzando il server. come risolve il problema? –

Problemi correlati