Building custom push notification service with MQTT

MQTT (Message Queue Telemetry Transport) este un protocol de mesagerie ușor special conceput pentru IoT de IBM. MQTT funcționează pe publica-Aboneaza-te Model.
Facebook & WhatsApp folosește MQTT pentru motorul lor de mesagerie.

Ei bine, în tutorial vă voi arăta cum puteți implementa un serviciu de notificare push folosind MQTT. Nu voi implementa un serviciu complet, ci un prototip despre cum poate fi.

instrumentele vor fi utilizate,

  1. EMQ (MQTT Broker)
  2. MongoDB(pentru a stoca informațiile utilizatorului)
  3. Admin Tabloul de bord (pentru a publica notificare)
  4. Android App (Client)
  5. Eclipse Paho MQTT client (Android, JavaScript)


este imaginea de ansamblu, modul în care componentele din sistem interacționează între ele.

ideea este că utilizatorul se va conecta la brokerul MQTT, brokerul le va autentifica cu date în mongodb.
asumați un utilizator ca administrator de sistem care va publica notificări & alți utilizatori vor fi abonați pentru a primi aceste notificări. Să presupunem, [email protected] este un utilizator, după autentificarea cu adresa de e-mail Utilizatorul va fi abonat la subiect([email protected]) și apoi din tabloul de bord admin dacă publicați un mesaj pe subiect [email protected] utilizatorul îl va primi. Asta e tot.

schema documentului MongoDB,

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

să presupunem că acesta este tabloul de bord admin,

există 3 butoane. Unul pentru a vă deconecta, unul este să adăugați utilizator și altul pentru a trimite notificări Push.
în ecranul de notificare push view este vizibil. Admin Tabloul de bord este conectat la MQTT broker prin Websocket. Adresa de e-mail a utilizatorului este subiectul în care mesajul va fi publicat. Când faceți clic pe Trimitere, acesta va publica mesajul folosind Websocket.

acum, dacă adresa de e-mail respectivă este conectată & abonat la subiectul respectiv, atunci clientul va primi mesajul.

Notă: Acesta este doar un prototip pentru scop educațional care nu este pregătit pentru producție. Pentru a utiliza în sistemul de producție trebuie să pună în aplicare de securitate & alte tuning acolo unde este necesar.

Leave a Reply