Creación de un servicio de notificaciones push personalizado con MQTT
MQTT (Message Queue Telemetry Transport) es un protocolo de mensajería ligero especialmente diseñado para IOT por IBM. MQTT funciona en el modelo Publicar-Suscribirse.
Facebook & WhatsApp utiliza MQTT para su motor de mensajería.
Bueno, en el tutorial voy a mostrar cómo se puede implementar un servicio de notificaciones push utilizando MQTT. No voy a implementar un servicio completo, sino un prototipo de cómo puede ser.
Se utilizarán herramientas,
- EMQ (Agente MQTT)
- MongoDB (Para almacenar información del usuario)
- Panel de administración (Para publicar notificaciones)
- Aplicación Android (Cliente)
- Cliente Eclipse Paho MQTT (Android, JavaScript)
Es el panorama general, cómo los componentes del sistema interactúan entre sí.
La idea es que el usuario se conectará a mqtt broker, el broker los autenticará con datos en mongodb.
Suponga que un usuario es administrador del sistema que publicará notificaciones & otros usuarios se suscribirán para recibir estas notificaciones. Supongamos, [email protected] es un usuario, después de la autenticación con la dirección de correo electrónico, el usuario se suscribirá al tema([email protected]) y luego desde el panel de administración si publica un mensaje sobre el tema [email protected] el usuario lo recibirá. Eso es todo.
Esquema de documento MongoDB,
{ "user_email": "email address of user", "user_password": "password of user", "type": "admin/user"}
Supongamos que este es el panel de administración,
Hay 3 botones. Una para Cerrar sesión, Otra para Agregar Usuarios y otra para Enviar notificaciones Push.
En la pantalla, la vista de notificaciones push es visible. El panel de administración está conectado a MQTT broker a través de Websocket. La dirección de correo electrónico del usuario es el tema donde se publicará el mensaje. Al hacer clic en Enviar, publicará el mensaje utilizando Websocket.
Ahora si la dirección de correo electrónico respectiva está conectada & suscrita al tema respectivo, el cliente recibirá el mensaje.
Nota: Este es solo un prototipo para fines educativos que no está listo para la producción. Para usarlo en el sistema de producción, debe implementar seguridad & otros ajustes donde sea necesario.
Leave a Reply