¿Cómo ha implementado Google su función de notificación push? ¿Funciona a través de sondeos realizados por un servicio que se ejecuta en segundo plano o de una manera diferente?¿Cómo funciona la tecnología de notificación push en Android?
Respuesta
Por lo que he oído durante una conferencia de desarrolladores de Android en Israel:
No es simplemente un socket TCP espera en accept mode en un servidor de la nube de Google. La conexión de TCP había sido iniciada por la aplicación Google Play. Es por eso que Google Play debe estar instalado en el dispositivo para que funcione el Google Cloud Messaging (GCM) (anteriormente Servicio de mensajería de dispositivo a la nube de Android - C2DM).
Cuando este socket de cliente TCP recibe algún mensaje, el mensaje contiene información como el nombre del paquete de la aplicación a la que debe dirigirse y, por supuesto, los datos en sí. Estos datos se analizan y se empaquetan en un intent que se transmite y que finalmente recibe la aplicación.
La toma TCP permanece abierta incluso cuando el estado de la radio del dispositivo cambia al modo "inactivo". Las aplicaciones no tienen que estar ejecutándose para recibir los intentos.
Más información en http://developer.android.com/google/gcm/gcm.html
Pero creo que funciona también con el emulador. Lo que me viene a la mente es que el dispositivo mantiene el servidor actualizado con su ruta actual (IP). Cuando el servidor de Google necesita enviar notificaciones, toma su ruta actual y reenvía el mensaje a esa ruta. ¿Tengo razón hasta cierto punto? –
@Khawar Raza: cuando la IP del dispositivo cambió por alguna razón, el dispositivo se desconecta del servidor. cuando sucede - nueva conexión astemblish en cambio, basado en el dispositivo IP nuevo. –
@Khawar Raza: el emulador funciona incluso sin google play. Supongo que inicia este socket integrado internamente, en lugar de google play –
Sí, tienes razón. Google tenía un servicio (GTalk Service) y este servicio le preguntó a los servidores de Google en algunos períodos de tiempo.
¿El servicio de gtalkservice todavía existe y funciona? –
No lo sé. Acabo de leer cómo funcionaba C2DM. Ahora algo puede cambiar. – Yury
Puede implementar la notificación PUSH en Android sí mismo con una conexión TCP sondeo largo. Pero eso implicaría mantener un socket adicional => drenaje de la batería. O puede abrir una conexión a intervalos regulares usando el Administrador de alarmas.
Google probablemente abre un socket para todas las notificaciones push C2DM, por lo tanto, es más eficiente en cuanto a la batería.
Android mantiene una conexión activa con los servidores de Google, pero no usa mucha energía o datos, porque no se envía tráfico a través de él hasta que algo envía un mensaje GCM a una aplicación en su teléfono. Solo hay una conexión en el teléfono, utilizada por todas las aplicaciones: la instalación de una nueva aplicación que utiliza GCM no agrega ninguna carga adicional.
El primer paso en GCM es que un servidor de terceros (como un servidor de correo electrónico) envía una solicitud al servidor GCM de Google. Este servidor luego envía el mensaje a su dispositivo, a través de esa conexión abierta. El sistema Android mira el mensaje para determinar para qué aplicación es e inicia esa aplicación. La aplicación debe haberse registrado en Android para usar GCM, y debe tener el permiso correspondiente. Cuando se inicia la aplicación, puede crear una notificación de inmediato con los datos del mensaje. Los mensajes de GCM tienen un tamaño muy limitado, por lo que la aplicación podría abrir una conexión normal al servidor de terceros para obtener más información (por ejemplo, descargar los encabezados de correos electrónicos nuevos).
La ventaja de usar notificaciones push es que las aplicaciones no tienen que ejecutarse a intervalos regulares para buscar nuevos datos, lo que ahorra energía y datos. La ventaja de tener un mecanismo centralizado como GCM es que el dispositivo solo necesita una conexión de red abierta y el sistema Android GCM es lo único que necesita para seguir funcionando, en lugar de que cada aplicación tenga que seguir ejecutándose en segundo plano para mantener su propia red conexión a su propio servidor.
Solo un comentario sobre la conexión GCM. Esa única conexión es una conexión de sondeo. – wmac
Lo más importante para mí fue que un servidor de terceros, p. un servidor de correo electrónico realmente envía un mensaje de notificación a los servidores de Google GCM. Es un servicio que Google proporciona de forma gratuita y cualquier tercero debe implementar un canal de comunicación con los servidores de Google utilizando su protocolo GCN. Por cierto, el protocolo es simplemente una respuesta HTTP con formato JSON. Consulte https://developers.google.com/cloud-messaging/ para obtener información detallada. –
- 1. Abrir aplicación Android de notificación PUSH
- 2. android push notificación de servicio de comparación
- 3. ¿Cómo funciona la tecnología "bump"?
- 4. ¿Cómo probar la notificación push de iOS?
- 5. notificación de Android no funciona
- 6. Notificación de Android no funciona
- 7. Registrarse para notificación push
- 8. "notificación Push" - retroalimentación, la aplicación de desinstalación
- 9. ¿Cómo funciona la tecnología de actualizaciones inteligentes de Google?
- 10. iPhone: cómo quitar la insignia después de la notificación push?
- 11. ¿Hay algún servicio de notificación push en Android como Apple Push Notification Service?
- 12. ¿Cuánto demora la notificación push ios?
- 13. Notificación push vs. pull en iphone
- 14. Cómo probar la notificación de inserción funciona en mi aplicación
- 15. Token de dispositivo de notificación push?
- 16. Chat en tiempo real con notificación push
- 17. Android - Mantener la notificación estable en la barra de notificación
- 18. ¿Android castra la tecnología Jazelle de ARM?
- 19. Android cómo mostrar la notificación en la pantalla
- 20. Notificación de iPhone Push - Cómo usar el sonido predeterminado
- 21. desactivar la notificación de SMS en Android
- 22. ¿Cómo enviar una notificación push a múltiples dispositivos?
- 23. Registrar la aplicación iPhone para notificaciones push no funciona
- 24. ¿Cuántos caracteres puede incluir en una notificación push de Apple?
- 25. ¿Es confiable el servicio de notificación push de Apple?
- 26. Android - EditText en la notificación de estado
- 27. Notificación de inserción para aplicaciones de Android
- 28. desaparece la notificación - Android DownloadManager
- 29. Rails 3 y el servicio de notificación push de apple
- 30. ¿Funciona `git push` como abreviatura de` git push origin newfeature`?
Me parece una pregunta real. Me preguntaba la respuesta y Google me trajo aquí. Una vez más, otra pregunta de calidad se cerró. –
También quiero saber esto y estaba planeando escribir una pregunta, pero ya existe esta, así que definitivamente es una buena pregunta. – PSIXO