GCM duplicó mensajes

Tengo una aplicación basada en Google Cloud Messaging y funcionaba bien. Ahora (hoy) de repente comenzó a tener un problema que nunca hemos visto antes. Para cada mensaje enviado entre dispositivos, el dispositivo receptor lo obtendrá dos veces. El primero llegará casi al instante (dentro de menos de 3 segundos del envío). El segundo llega unos minutos más tarde. Hay dos dispositivos en la prueba, el problema es el mismo cualquiera que sea el remitente / receptor. Por lo tanto, si un dispositivo envía un mensaje a otro, el otro los obtendrá prácticamente al instante, pero luego, en un momento posterior, recibirá una avalancha de mensajes que son las segundas copias de los mensajes que ha recibido.

He puesto en puntos de interrupción para asegurarse de que el dispositivo de envío no fue el culpable: el mensaje se envió exactamente una vez (es decir, el servicio web para el envío se llamó exactamente una vez – y el código para el backend, que se ejecuta en Google App Engine , No ha cambiado por edades.) Sin embargo, el mensaje de alguna manera se entrega al dispositivo receptor dos veces. Mediante el uso de puntos de interrupción también me aseguré de que nuestro propio código en el lado de recepción no es responsable: se verifica que GCMIntentService::onMessage() hecho se invoca dos veces para cada mensaje enviado.

También nos aseguramos de que el ID de registro en nuestra base de datos sea el más reciente. En este punto estoy stumped y necesita ideas para hacer cualquier progreso. Entonces, ¿alguna idea?

3 Solutions collect form web for “GCM duplicó mensajes”

https://groups.google.com/forum/#!topic/android-gcm/EHZUTEJMeyw

Compruebe el hilo oficial de GCM anterior. Todo el mundo está experimentando este problema. Culpa de Google!

También tenemos el mismo problema, y ​​estamos seguros de que no enviamos el mensaje dos veces. Podría ser un problema relacionado con lo que se explica aquí acerca de "Canonical IDs": http://developer.android.com/google/gcm/adv.html

[…] Sin embargo, si un error en la aplicación activa varios registros para el mismo dispositivo, puede ser difícil reconciliar el estado y es posible que acabe con mensajes duplicados .

El mismo problema aqui. Tenemos muchas aplicaciones integraded con MyMalcom y Urban Airship y todos ellos están recibiendo empujes dos veces desde el lunes. Hemos comprobado también los cambios canonicalId como lo sugiere Ferran, pero los mensajes entregados a GCM son correctos (no hay cambios de Id cannonical).

  • Protección de los extremos de la API de Google App Engine
  • Ubicación personalizada del almacén de datos en una máquina local con App Engine
  • ¿Cómo puedo conectar una aplicación de Google App-Engine con mi Android?
  • ¿Cuáles son las dependencias de gradle necesarias para un backend de App Engine con Google Cloud Messaging?
  • java.awt.AWTError: Toolkit no encontrado: apple.awt.CToolkit Android appengineUpdate
  • Endpoints de Google App Engine Cloud userId es nulo
  • GAE no reconoce la cookie?
  • No se puede conectar a los puntos finales gae locales del emulador de Genymotion
  • Appengine proyecto android conectado
  • EOFException durante el uso de puntos finales de google
  • Servidor Android más seguro y seguro backend
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.