custom push notification service bouwen met MQTT

MQTT (Message Queue Telemetry Transport) is een lichtgewicht messaging protocol speciaal ontworpen voor IOT door IBM. MQTT werkt op Publiceren-Subscribe Model.
Facebook & WhatsApp gebruikt MQTT voor hun messaging engine.

in de tutorial ga ik laten zien hoe je een push notificatie service kunt implementeren met MQTT. Ik ben niet van plan om volledige service te implementeren, maar een prototype over hoe het kan zijn.

gereedschappen worden gebruikt,

  1. EMQ (MQTT Broker)
  2. MongoDB (om gebruikersinformatie op te slaan)
  3. Admin Dashboard (om kennisgeving te publiceren)
  4. Android App (Client)
  5. Eclipse Paho MQTT client (Android, JavaScript)


het is het grote geheel, Hoe componenten in het systeem met elkaar in wisselwerking staan.

het idee is dat de gebruiker verbinding zal maken met MQTT broker, broker zal ze authenticeren met gegevens in mongodb.
neem een gebruiker aan als systeembeheerder die meldingen zal publiceren & andere gebruikers zullen geabonneerd zijn om deze meldingen te ontvangen. Stel dat … [email protected] is een gebruiker, na authenticatie met het e-mailadres van de gebruiker zal worden geabonneerd op het onderwerp([email protected]) en vervolgens van admin dashboard als u een bericht over het onderwerp te publiceren [email protected] de gebruiker zal het ontvangen. Dat is alles.

MongoDB Document Schema,

{ "user_email": "email address of user", "user_password": "password of user", "type": "admin/user"}

stel dat dit het admin dashboard is,

er zijn 3 knoppen. Een om uit te loggen, Een is om de gebruiker toe te voegen en een andere om pushmeldingen te verzenden.
in het scherm is de push notificatieweergave zichtbaar. Admin dashboard is verbonden met MQTT broker via Websocket. Het e-mailadres van de gebruiker is het onderwerp waar het bericht zal worden gepubliceerd. Wanneer u op Send klikt, wordt het bericht gepubliceerd met behulp van Websocket.

nu als het betreffende e-mailadres is verbonden & geabonneerd op het betreffende onderwerp dan zal de client het bericht ontvangen.

Opmerking: Dit is slechts een prototype voor educatieve doeleinden dat niet klaar is voor productie. Om het te gebruiken in het productiesysteem moet je security & implementeren, andere tuning waar nodig.

Leave a Reply