Как да разбера дали GCM е свил съобщение?

Как може приемник на GCM съобщение да открие дали съобщението е било "свито" от GCM сървъра с помощта на collapse_key? Има ли налична обратна връзка? или най-добрата практика?

Целта е да се създаде оптимална (най-евтина) реализация за шаблона „send_to_sync“, при който клиентът „синхронизира“ само ако има пропуснати съобщения.

Пример: Да приемем, че група от 10 устройства се актуализират взаимно за точното си местоположение чрез GCM съобщения. Уместна е само последната актуализация, така че би било хубаво всеки потребител да има свой собствен ключ за свиване. Поради ограничението от 4 ключа за свиване, когато използвате GCM, не можете да използвате ключ за свиване на потребител, поради което трябва да създадете своя собствена система и да използвате шаблона „send_to_sync“. Би било хубаво, ако всяко съобщение "send_to_sync" съдържа най-новата актуализация + в индикация дали има пропуснати съобщения, ако не, тогава няма нужда от синхронизиране.


person Tom Bevelander    schedule 11.05.2014    source източник


Отговори (1)


Получателят може да открие, че съобщението е свито, като включи някакъв брояч в полезния товар. Всеки път, когато сървърът изпрати GCM съобщение до устройствата, той ще увеличи този брой с едно. Когато дадено устройство получи съобщение, то ще сравни този брой с предишния брой, който е получил. Ако броят нарасне с повече от едно, се изисква синхронизиране.

person Eran    schedule 11.05.2014
comment
Харесвам простотата и решението от страна на клиента, това ще бъде моят път. Благодаря! - person Tom Bevelander; 12.05.2014