2012-07-27 9 views
10

Trabajo con GCM en mi aplicación y tengo un problema.Los mensajes de Android GCM tardan demasiado en llegar

La mayoría de las veces recibo los mensajes de inmediato, pero a veces los mensajes llegan después de 5 minutos, uno tras otro, como si se hubieran atascado en el camino. ¿Esto es normal?

+1

Ditto. Experimentar el mismo problema desafortunadamente :( –

+1

Tengo el mismo problema. –

Respuesta

6

todavía tengo que notar que en mis pruebas extremadamente limitado hasta ahora, pero desde mi comprensión de la documentation, eso no suena muy sorprendente:

GCM generalmente entregar mensajes inmediatamente después de su expedido. Sin embargo, esto no siempre es posible. Por ejemplo, el dispositivo podría apagarse, desconectarse o no estar disponible. En otros casos, el remitente puede solicitar que los mensajes no se entreguen hasta que el dispositivo se active utilizando el indicador de retraso_mientras_idle. Finalmente, GCM podría retrasar intencionalmente los mensajes para evitar que una aplicación consuma recursos excesivos e impacte negativamente la duración de la batería.

Entre esto y el idioma en el resto de la documentación, lo que ha descrito suena exactamente como esperaba. No hay garantía de entrega inmediata; por lo general, los mensajes se entregan de inmediato, pero a veces no.

+6

Estoy construyendo una aplicación para la cual la entrega oportuna de mensajes es crítica. Mi experiencia hasta ahora es que el GCM demora unos 2-3 segundos la mayoría de las veces. puede tomar de 5 a 10 segundos y ocasionalmente demora entre 1 y 2 minutos. No conozco nada que el desarrollador de la aplicación pueda hacer para reducir los tiempos de entrega o hacerlos más consistentes, pero si hay algo que seguramente me encantaría ¡sé! – gcl1

+2

Es junio de 2014. Todavía estoy enfrentando este problema. – MeetM

0

Estoy buscando lo mismo que el póster original. Parece tomar hasta 5 minutos para "despertar" y luego trata los mensajes muy rápidamente.

Mi aplicación maneja elementos de texto en una conversación con una persona sorda. La persona que llama inicia la conversación y la persona sorda responde por teléfono. La demora ocurre solo en el primer paso, el nuevo mensaje "de la nada". Una vez hecho el primero para eso (aplicación, dispositivo, identificación del sistema?), Los demás se procesan muy rápidamente, casi instantáneamente.

8

La parte GCM marco en el teléfono del cliente utiliza una conexión TCP en el puerto 5228. Esta conexión se utiliza para su notificaciones push, pero como todas las conexiones TCP que puede ir en tiempo de espera con algunos routers/transportistas que se aplican políticas estrictas para matar conexiones tcp inactivas (tcp tiempo de espera inactivo).

La mayoría de los enrutadores wifi mata las conexiones inactivas después de 5 minutos, por ejemplo, como el mío.

El marco GCM utiliza un mecanismo keep-alive para enviar un paquete de red heartbeat cada 15 minutos en wifi y cada 28 minutos en 3G. Este keep-alive no siempre es confiable para todos los usuarios.

He abierto el problema a google aquí: https://productforums.google.com/forum/#!category-topic/nexus/connecting-to-networks-and-devices/fslYqYrULto Aceptan que hay un problema.

Cuestiones relacionadas