¿Cómo utilizar androidpn para enviar mensajes a teléfonos Android?
Androidpn contiene dos paquetes: servidor y cliente. La parte del servidor puede ejecutarse de forma independiente como servidor o puede integrarse en un servlet de un proyecto web e interactuar con otras partes del proyecto web en un entorno Tomcat. No entraré en detalles aquí. Lo que voy a discutir es cómo integrar androidpn con sus propias aplicaciones web.
La estructura principal del paquete de la parte del servidor es la siguiente:
Uso de Org.androidpn.server.dao, org.androidpn.server.model y org.androidpn.server.service hibernar para conectarse a la base de datos e implementar una autenticación de inicio de sesión de usuario simple. Después de implementar una autenticación de inicio de sesión de usuario simple, se puede reemplazar con nuestro propio módulo de autenticación desarrollado. El resto del paquete es la implementación principal de push.
A continuación, compruébelo paquete por paquete:
1. Las clases en el paquete util se utilizan para cargar recursos en el archivo de configuración, puede especificar atributos como este. como puerto de escucha y directorio de certificados SSL.
El paquete 2.org.androidpn.server.xmpp define algunos tipos de excepciones, incluida principalmente la clase de entrada XmppServer, que se utiliza para iniciar y detener el programa del servidor.
El paquete 3.org.androidpn.server.xmpp.auth contiene algunas clases de autenticación, nuestro propio módulo de autenticación se puede combinar con androidpn aquí.
4.org.androidpn.server.xmpp.codec es un paquete de análisis de archivos XML para el protocolo XMPP. Los mensajes recibidos y enviados por el servidor son codificados y decodificados por este paquete al protocolo XMPP.
5. El paquete org.androidpn.server.xmpp.handler es el principal responsable de procesar mensajes. Podemos definir nuestros propios controladores para diferentes tipos de mensajes. El paquete server.xmpp.net es responsable de mantener conexiones persistentes con los clientes e implementar algunos transportes para enviar mensajes XMPP.
7.
7. org.androidpn.server.xmpp.presence solo contiene la clase PresenceManager, que se utiliza para mantener el estado en línea del cliente.
8. La clase NotificationManager en el paquete org.androidpn.server.xmpp.push contiene una interfaz para enviar mensajes al cliente.
El paquete 9.org.androidpn.server.xmpp.router es responsable de enviar los paquetes de mensajes recibidos al controlador apropiado para su procesamiento.
El paquete 10.org.androidpn.server.xmpp.session define sesiones utilizadas para representar enlaces persistentes. Cada sesión contiene información sobre el estado de la conexión.
11.org.androidpn.server.xmpp.ssl es un conjunto de herramientas para la verificación SSL de conexiones.
Todo el proceso del servidor que envía mensajes incluye principalmente:
1. Llame a la interfaz push de NotificationManager.
2. Utilice SessionManager para encontrar el enlace del cliente correspondiente en la colección de sesiones actual.
3. Defina su propio formato de mensaje XMPP y ensamblelo.
4. Enviar el mensaje al cliente a través de la sesión adecuada.
Lo que debemos modificar en este proceso es el paso 3, lo que significa que debemos definir y ensamblar nuestros propios mensajes XMPP para pasar la información adecuada al cliente y hacer que el cliente sea más fácil de analizar. Un ejemplo sencillo de ensamblaje de mensajes es el siguiente:
private IQ createMessageIQ(String title, String message, String userId,
String json) {
Notificación de elemento = DocumentHelper .createElement(QName.get(
"message", INQURIE_NAMESPACE));
notification.addElement("title").setText(title );
notification.addElement("text").setText(message);
notification.addElement("userId").setText(message);
notification.addElement("userId) ") .setText(mensaje);