2014-09-09 8 views
10

Sto cercando di utilizzare il servizio GCM, Ogni cosa è OK tranne il lungo ritardo che GCM invia notifica o consegna payload ... alcune volte la mia app riceve 5 minuti per ricevere notifica o carico utile. Ho bisogno di una consegna immediata ... Conosco i ruoli di GCM, che aspetto che l'altro dispositivo sia in linea, ma nel mio caso tengo due dispositivi e sono in linea, ma ho ricevuto notifiche ritardate!In che modo WhatsApp supera le notifiche GCM?

In che modo WhatsApp (come un esempio di app che utilizza GCM) supera questo problema .. e invia immediatamente?

[cioè (messaggio del tipo: digitazione, in linea - visto l'ultima volta) non può essere ritardata ...]


il GCM push ritardata è noto problema: this issue la mia domanda è: come altra applicazione che utilizza GCM per superare questo problema

+4

[Leggendo le autorizzazioni durante l'installazione di Whatsapp, non penso che utilizzino GCM] (https://play.google.com/store/apps/details?id=com.whatsapp&hl=en). Penso che stiano eseguendo un servizio in background connesso al loro server, probabilmente tramite un socket. – Krishnabhadra

+1

Lo fanno. Usano la vecchia versione - C2DM ho visto lì sharedprefs. –

+1

No, non lo penso. Whatsapp è costruito usando il server jabber, che implementa il protocollo di comunicazione XMPP. – DEV

risposta

10

Quando si invia la notifica, è possibile impostare "priority-parameter su" alto ".

Dalla documentazione:

Per impostazione predefinita, i messaggi vengono inviati con priorità normale. La priorità normale ottimizza il consumo della batteria dell'app client e deve essere utilizzata a meno che non sia necessaria la consegna immediata. Per i messaggi con priorità normale, l'app potrebbe ricevere il messaggio con un ritardo non specificato.

Quando un messaggio viene inviato con priorità alta , viene inviato immediatamente e l'app può riattivare un dispositivo che dorme e aprire una connessione di rete al server.

So che questa risposta arriva in ritardo, tuttavia se si sta ancora affrontando questo problema (o chiunque altro) per favore dimmi se aiuta.

+0

Attualmente sto usando la priorità alta quando si preme la notifica dal server. Ma la notifica è ancora in ritardo o non può ricevere quando il telefono è in modalità di sospensione. Potresti darmi un suggerimento? Grazie –