Cómo implementar el servidor para enviar mensajes activamente al cliente de Android
La mensajería push es una nueva tecnología que reduce la sobrecarga de información en Internet proporcionando periódicamente a los usuarios la información que necesitan. La tecnología de envío de información reduce el tiempo que los usuarios dedican a buscar información en línea al enviar información automáticamente a los usuarios. Busca y filtra información según los intereses del usuario y la envía a los usuarios con regularidad, ayudándolos a descubrir información valiosa de manera eficiente.
Cuando desarrollamos aplicaciones móviles que necesitan interactuar con el servidor, básicamente necesitamos interactuar con la interacción del servidor. , incluida la carga de datos al servidor y la obtención de datos del servidor.
Generalmente, la comunicación entre el cliente y el servidor está activa, pero hay un problema, es decir, una vez que el servidor actualiza los datos o el servidor envía una notificación al cliente, solo puede esperar el cliente para conectarse. Esto solo se puede lograr después de llegar al cliente. Este enfoque hace que el mensaje pierda su carácter de tiempo real.
Cómo hacer que el cliente reciba mensajes y notificaciones en tiempo real del servidor. En términos generales, hay dos formas. La primera es que el cliente utiliza el método Pull, es decir, va al servidor. para obtener información de vez en cuando. Verifique si hay alguna información actualizada. La segunda es que el servidor adopta el método Push, es decir, cuando el servidor tiene información nueva, envía la información más reciente al cliente. De esta forma, el cliente recibirá automáticamente la información.
Aunque tanto Pull como Push pueden lograr la función de obtener actualizaciones del lado del servidor, Push es obviamente mejor que Pull.
Aunque tanto Pull como Push pueden lograr la función de obtener actualizaciones del lado del servidor, Push es obviamente mejor que Pull porque Pull es más caro en términos de tráfico de red del cliente y, lo que es más importante, en términos de consumo de energía. también requiere que nuestro programa supervise continuamente los cambios del lado del servidor.
Dos soluciones comunes para implementar este principio
1) Método de sondeo (Pull): el cliente envía regularmente mensajes de consulta al servidor y sincroniza los mensajes inmediatamente cuando el servidor cambia.
2) Método SMS (push): comprenda los comandos del servidor interceptando mensajes SMS y analizando el contenido del mensaje, pero este método es difícil de soportar para los usuarios comunes.
3) Método de conexión persistente (Push): el cliente establece una conexión permanente con el servidor, de modo que se pueda lograr el enrutamiento y la naturaleza en tiempo real del mensaje.
3. Descripción general de las soluciones de envío de mensajes
1. Solución de envío en la nube C2DM
En la plataforma móvil Android, Google proporciona el servicio C2DM (mensajería de nube a dispositivo). . Android Cloud to Device Messaging (C2DM) es un servicio que ayuda a los desarrolladores a enviar datos desde servidores a aplicaciones de Android. El servicio proporciona un mecanismo simple y liviano que permite al servidor notificar a las aplicaciones móviles que pueden comunicarse directamente con el servidor para facilitar la obtención de actualizaciones de aplicaciones y datos de usuario del servidor.
El principal problema con esta solución es que C2DM necesita depender del servidor C2DM oficial proporcionado por Google y, debido al entorno de red nacional, este servicio a menudo no está disponible.
B. Implementar la función push de Android a través del protocolo MQTT
Usar el protocolo MQTT para implementar la función push de Android también es una solución. MQTT es un protocolo ligero de publicación/suscripción de mensajes que es una solución ideal para implementar servidores de envío de mensajes basados en clientes móviles.
wmqtt.jar es la implementación del protocolo MQTT proporcionado por IBM. El código de muestra para el proyecto se puede descargar aquí (/tokudu/AndroidPushNotificationsDemo), y se puede encontrar una implementación del lado del servidor escrita en PHP aquí (/tokudu/PhpMQTTClient).
Implementación C, RSMB de la función push
Really Small Message Broker (RSMB) es un broker MQTT simple, también proporcionado por IBM, y su dirección de visualización es: /tech/rsmb: /tech/rsmb. Una aplicación que abre el puerto 1883 por defecto y se encarga de recibir mensajes del servidor y reenviarlos al dispositivo móvil especificado. SAM es una biblioteca PHP escrita para MQTT. Se puede descargar desde /package/sam/download/0.2.0.
D, protocolo XMPP para Android push
El servidor C2DM oficial de Google también utiliza el protocolo XMPP. XMPP (Protocolo de presentación y comunicaciones extensible) es un protocolo basado en XML que se utiliza para mensajería instantánea (IM) y sondeo de presencia. El protocolo permitirá eventualmente a los usuarios de Internet enviar mensajes instantáneos a cualquier otra persona en Internet.
androidpn es una implementación de notificaciones push de Android de código abierto Java basada en el protocolo XMPP. Contiene lados completos de cliente y servidor. Pero también tiene algunas desventajas:
1) Por ejemplo, cuando el tiempo sea demasiado largo, ya no podrás recibir mensajes push.
2) El rendimiento no es lo suficientemente estable.
3) Si el mensaje se envía desde el servidor, no importa si el mensaje llega exitosamente al teléfono móvil del cliente, ya no se administrará.
Si queremos utilizar Androidpn, todavía tenemos que trabajar mucho. Necesitamos comprender el protocolo XMPP, comprender el mecanismo de implementación de Androidpn y depurar errores internos.
5. El uso de plataformas de terceros
Existen muchas plataformas push en el país y en el extranjero, pero implican problemas de cobro, problemas de confidencialidad, problemas de calidad del servicio, problemas de expansión y servicio. Problemas de calidad, problemas de expansión, etc., tienen que mantenernos alejados.
4. Soluciones perfectas para el envío de mensajes
Según la discusión anterior, existen muchas soluciones para establecer el envío de mensajes en Android, pero cada solución tiene sus ventajas y desventajas. Pero en cualquier caso, sigue siendo una buena idea establecer una plataforma de empuje. Como tú lo tienes y él lo tiene, es mejor que lo tengas tú mismo.
Por ejemplo, se recomienda utilizar el "componente de envío de mensajes de Android XX" al crear su propia plataforma de envío. El componente no solo está listo para usar, sino que también se proporciona el código fuente para ampliarlo e implementar sus propias necesidades especiales.
1. Principio de envío
El componente de envío de mensajes de Android implementa el envío de Android basado en el protocolo XMPP. XMPP (Protocolo de presentación y comunicación extensible) se basa en el protocolo de lenguaje de marcado extensible (XML) y se utiliza para mensajería instantánea (IM) y detección de presencia. El protocolo permitirá eventualmente a los usuarios de Internet enviar mensajes instantáneos a cualquier otra persona en Internet.