Costruire servizio di notifica push personalizzato con MQTT
MQTT (Message Queue Telemetry Transport) è un protocollo di messaggistica leggero appositamente progettato per IOT da IBM. MQTT funziona sul modello Publish-Subscribe.
Facebook & WhatsApp utilizza MQTT per il loro motore di messaggistica.
Bene, nel tutorial ho intenzione di mostrare come è possibile implementare un servizio di notifica push utilizzando MQTT. Non ho intenzione di implementare un servizio completo ma un prototipo su come può essere.
Strumenti utilizzati,
- EMQ (MQTT Broker)
- MongoDB (Per memorizzare informazioni utente)
- Admin Dashboard (Per pubblicare notifica)
- App Android (Client)
- Eclipse Paho MQTT client (Android, JavaScript)
grande immagine, come componenti del sistema interagiscono tra loro.
L’idea è che l’utente si connetterà al broker mqtt, il broker li autenticherà con i dati in mongodb.
Assumere un utente come amministratore di sistema che pubblicherà le notifiche & altri utenti saranno sottoscritti per ricevere queste notifiche. Supponiamo, [email protected] è un utente, dopo l’autenticazione con l’indirizzo email l’utente sarà iscritto all’argomento([email protected]) e poi da admin dashboard se pubblichi un messaggio sull’argomento [email protected] l’utente lo riceverà. Questo è tutto.
Schema documento MongoDB,
{ "user_email": "email address of user", "user_password": "password of user", "type": "admin/user"}
Supponiamo che questo sia il dashboard dell’amministratore,
Ci sono 3 pulsanti. Uno per il logout, Uno è quello di aggiungere utente e un altro per inviare notifiche Push.
Nella schermata è visibile la vista notifica push. Admin dashboard è collegato al broker MQTT tramite Websocket. L’indirizzo email dell’utente è l’argomento in cui verrà pubblicato il messaggio. Quando si fa clic su Invia pubblicherà il messaggio utilizzando Websocket.
Ora se il rispettivo indirizzo e-mail è collegato & sottoscritto al rispettivo argomento, il client riceverà il messaggio.
Nota: Questo è solo un prototipo per scopi educativi non pronto per la produzione. Per utilizzarlo nel sistema di produzione è necessario implementare la sicurezza & altra messa a punto dove necessario.
Leave a Reply