Error de límite de tarifa excedido al utilizar Google Cloud Messaging API
Cuando se utiliza la API de mensajería en la nube de Google para enviar mensajes entre un servidor backend y un cliente Android / Chrome, el servidor backend puede, a veces, recibir un límite de velocidad superior al código de respuesta. Este código es "DeviceMessageRateExceeded" para un servidor de conexión HTTP y "DEVICE_MESSAGE_RATE_EXCEEDED" para un servidor de conexión en nube .
¿Qué es este código de error y cómo debe ser administrado?
- Google Plus +1 una aplicación de Google Play?
- Entrada duplicada: com / google / firebase / FirebaseApiNotAvailableException.class
- ¿Cómo descargar Google Play Services en un emulador de Android?
- Google Maps open-source-attribution es increíblemente grande y bloquea el hilo principal
- No se pudo iniciar sesión. Compruebe la conexión de red e inténtelo de nuevo.
- La compra en la aplicación utiliza una cuenta incorrecta después de la actualización
- Reconocimiento de actividad deja de recibir actualizaciones cuando el teléfono pasa al modo de espera (estado de apagado de la pantalla)
- Anuncios de Google para móviles y Kindle Fire
- PlayServices ads library 7.5.0 necesita WRITE_EXTERNAL_STORAGE permiso
- Problema con Robolectric con la nueva versión de los servicios de Google Play
- No puede setInterval en onLocationChanged
- Google Play Services 5.0.77
- Android Studio no puede resolver el símbolo GoogleAnalytics v4
El código de excepción de límite de velocidad indica que está enviando mensajes de un servidor back-end con demasiada frecuencia. Para garantizar un servicio estable, hay un límite superior de la aplicación por minuto / por dispositivo en el número de mensajes que se pueden enviar desde un servidor back-end. Este límite se establece alto por lo que la mayoría de las aplicaciones de buen comportamiento no deben verse afectados, todas las aplicaciones deben estar preparados para recibir este código de error.
Como se especifica en la pregunta, en el caso de un servidor de conexión HTTP , el código de error será "DeviceMessageRateExceeded". Y para un servidor de conexión en nube , será "DEVICE_MESSAGE_RATE_EXCEEDED", que está reemplazando el código de error anterior "QUOTA_EXCEEDED".
Si su servidor backend recibe este código de error, debe reducir la velocidad que envía mensajes al cliente, idealmente mediante la implementación de backoff exponencial .
CCS aguas abajo ack no se contabilizan en el cupo.
La cuota de DeviceMessageRateExceeded se recibe cuando envía demasiados mensajes a un solo dispositivo – no es necesario que rechace todo el envío, solo a ese ID de registro. Asegúrese de manejar la respuesta "canónica" de ID de registro – es posible tener múltiples regids apuntando al mismo dispositivo.
El 'quota_exceeded' se utilizó en C2DM – GCM no lo devuelve actualmente. Si alguien todavía está usando C2DM – la manipulación es para acelerar / enviar backoff para todos los mensajes. O mejor aún: migrar a GCM que no tiene esta cuota global.
- Cómo manejar graciosamente la excepción dentro de AsyncTask en Android?
- ¿Por qué falla Adb con el error ?