2014-09-09 15 views
10

Próbuję korzystać z usługi GCM, wszystko jest w porządku, z wyjątkiem długiego opóźnienia wysyłania powiadomień GCM lub dostarczania ładunku ... czasami zajmuje to moją aplikację 5 minut od otrzymania powiadomienia lub ładunku. Potrzebuję Natychmiastowe dostarczanie ... Wiem o rolach GCM, które czekają, aż inne urządzenie przejdzie w tryb online, ale w moim przypadku mam dwa urządzenia i są one w trybie online, ale otrzymałem powiadomienia opóźnione!W jaki sposób program WhatsApp umożliwia opóźnienie powiadomienia o opóźnieniach w systemie GCM?

W jaki sposób WhatsApp (jako przykład aplikacji korzystającej z GCM) rozwiązuje ten problem .. i wysyła natychmiast?

[czyli (komunikat typu: pisanie, on-line - ostatnio widziano) nie mogą być opóźnione ...]


UMK Delayed Push jest znany problem: this issue moje pytanie brzmi: Jak inna aplikacja używające GCM przezwyciężyć ten problem

+4

[Czytanie uprawnień podczas instalacji Whatsapp, myślę, że nie używają GCM] (https://play.google.com/store/apps/details?id=com.whatsapp&hl=en). Wydaje mi się, że korzystają z usługi w tle, która jest podłączona do ich serwera, prawdopodobnie przez gniazdo. – Krishnabhadra

+1

Robią to. Używają starej wersji - C2DM Widziałem tam sharedprefs. –

+1

Nie, nie sądzę. WhatsApp jest zbudowany przy użyciu serwera Jabber, który implementuje protokół komunikacyjny XMPP. – DEV

Odpowiedz

10

Wysyłając powiadomienie, można ustawić wartość priority-parameter na "wysoką".

Od docs:

Domyślnie wiadomości są wysyłane z normalnym priorytecie. Normalny priorytet optymalizuje zużycie baterii aplikacji klienckiej i powinien być używany, chyba że wymagana jest natychmiastowa dostawa. W przypadku wiadomości o normalnym priorytecie aplikacja może otrzymać wiadomość o nieokreślonym opóźnieniu.

Gdy wiadomość zostanie wysłana z wysokim priorytetem , zostanie wysłana natychmiast pod numer, a aplikacja może wybudzić urządzenie sypialne i otworzyć połączenie sieciowe z serwerem.

Wiem, że ta odpowiedź jest spóźniona, niemniej jednak, jeśli nadal napotykasz ten problem (lub ktokolwiek inny), powiedz, czy to pomaga.

+0

Używam teraz wysokiego priorytetu podczas wysyłania powiadomienia z serwera. Ale powiadomienie jest nadal opóźnione lub nie może zostać odebrane, gdy telefon jest w trybie uśpienia. Czy mógłbyś dać mi sugestię? Dzięki –

Powiązane problemy