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,

  1. EMQ (MQTT Broker)
  2. MongoDB (Per memorizzare informazioni utente)
  3. Admin Dashboard (Per pubblicare notifica)
  4. App Android (Client)
  5. 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