La mia domanda è: in che modo Google Cloud Messaging sa dove inviare il messaggio? funziona tramite indirizzo IP? C'è un intervallo che esegue una funzione sul telefono per inviare la posizione corrente o l'indirizzo IP del telefono al server di Google? Qualcuno sa?In che modo GCM individua un telefono utente
risposta
ecco il link che spiega il funzionamento di GCM http://developer.android.com/guide/google/gcm/gcm.html
cliente Ogni GCM crea un token dispositivo unico che è necessario inviare al server GCM per l'invio delle notifiche push per cliente.
Qui potete trovare link spiegando il GCM.
Google non ha bisogno di conoscere l'indirizzo IP del dispositivo. Invece, il dispositivo si connette a Google, identifica se stesso utilizzando qualsiasi protocollo utilizzato da Google per l'autenticazione e Google utilizza quindi quella connessione stabilita per inviare notifiche al dispositivo.
Quando il telefono passa da un indirizzo IP a un altro, effettua semplicemente una nuova connessione a Google, quindi Google utilizza tale nuova connessione per le notifiche. Google non avrebbe nemmeno bisogno di tenere traccia del tuo indirizzo IP dopo la disconnessione, dal momento che non appena si disconnette (come su un sistema pubblico WiFi), qualcun altro potrebbe iniziare a utilizzare lo stesso indirizzo.
GCM funziona eseguendo un servizio di sua proprietà per gestire le notifiche push.
Questo servizio richiede a Google Cloud Server (GCM) l'ID del token dell'app creato da GCM per tutte le notifiche in sospeso create dall'app e invia la risposta indietro con tutte le notifiche dall'ID token alla tua app, e ciò accade per tutte le app che utilizzano GCM.
Quindi, fondamentalmente se hai 5 app che hanno implementato GCM, i loro ID token verranno inviati insieme da questo servizio e GCM controllerà se sono disponibili notifiche per gli ID dei token inviati e li invia come risposta.
Leggi questo thread, questo ragazzo lo ha spiegato e GCM è affidabile per le nuove build di app !!
http://eladnava.com/google-cloud-messaging-extremely-unreliable/
In particolare questo: "E 'utilizza una connessione esistente per i servizi di Google." –
Ho letto il documento alcune volte ma non ho ancora trovato quello che sto cercando. In particolare, ti sto chiedendo quando usi l'API per inviare un messaggio come fa il server di Google a sapere dove si trova il telefono? dì se l'indirizzo IP del mio telefono è 5.5.5.5 quando registro l'app con GCM allora cambia in 6.6.6.6 come fa a sapere a chi inviarlo? – user1748870
Non ho mai letto alcuna comunicazione GCM relativa all'indirizzo ip. Ogni volta che la tua domanda è registrata per il servizio GCM, viene generato l'ID di registrazione univoco per il tuo dispositivo, che viene memorizzato sul server GCM di Google e lo stesso ID che dobbiamo memorizzare sul nostro server di terze parti. ogni volta che richiediamo funzionalità, dobbiamo inviare questo ID a google sever e il server di google inoltrerà la richiesta al dispositivo .. –