Дублирование сообщений GCM от Uniqush

Я использую Uniqush для отправки сообщений GCM в разрабатываемое мной приложение, и пока это работает хорошо. Однако по понятным причинам я удаляю и переустанавливаю приложение по мере разработки, и оно перерегистрируется в GCM при каждой новой установке.

Я понимаю, что GCM должен обрабатывать это автоматически:

http://developer.android.com/guide/google/gcm/adv.html#unreg

если сообщение не может быть доставлено на устройство, оно отправляет ошибку на сервер, который его обрабатывает. К сожалению (даже после отправки тестового push-сообщения, когда приложение не было установлено), я получаю повторяющиеся сообщения на свое устройство.

Это сбой в Uniqush, моей программе, GCM или какой-то комбинации этих трех факторов?


person Andrew Wyld    schedule 04.12.2012    source источник


Ответы (2)


Если уведомления отправляются на устройство с удаленным приложением, в конце концов дубликаты удаляются.

person Andrew Wyld    schedule 06.12.2012

Учитывая ваше описание, я не могу воспроизвести вашу ситуацию. Вот шаги, чтобы попытаться воспроизвести его:

  • Установите тестовое приложение на мой телефон и отправьте ему уведомление с помощью uniqush. Правильный. Журнал Uniqush показывает, что доставка прошла успешно, и мой телефон показывает правильный результат.
  • Удалите тестовое приложение.
  • снова нажмите другое уведомление, используя uniqush. Журнал Uniqush показывает сообщение о том, что пользователь отписался от службы: [Unsubscribe][Info] 2012/12/21 19:18:08 [UnsubscribeRequest] RequestId=3992a14e4987e94e3ce16bb7394ee06d2d9e7231 Success DeliveryPoint=gcm:47e6551857be173b1418e56b63dbdb8cd58c94a2
  • Затем отправьте еще одно уведомление на устройство, uniqush говорит, что не может найти устройство (потому что оно уже удалено).
  • Проверьте базу данных с помощью redis-cli, информация об устройстве больше не сохраняется. Он успешно отписан.

Однако я обнаружил некоторую проблему: если вы проверите сообщение об ошибке, возвращаемое uniqush из HTTP, вы увидите Success во втором уведомлении. Я уже исправил эту ошибку в следующем релизе. Это будет онлайн в ближайшее время. (Если вас это интересует, проверьте пакет .deb )

На самом деле, uniqush предназначен для того, чтобы иметь возможность обрабатывать такие ситуации, чтобы пользователю не нужно было заботиться об отмене подписки, обновлении токена устройства / идентификатора регистрации и т. д.

Если у вас есть какие-либо вопросы в будущем, пожалуйста, не стесняйтесь комментировать или связаться со мной.

person monnand    schedule 22.12.2012