budowanie niestandardowej usługi powiadomień push z MQTT

MQTT (Message Queue Telemetry Transport) jest lekkim protokołem komunikacyjnym zaprojektowanym specjalnie dla IOT przez IBM. MQTT działa w modelu Publikuj-Subskrybuj.
Facebook & WhatsApp używa MQTT dla swojego silnika wiadomości.

cóż, w tutorialu pokażę, jak można zaimplementować usługę powiadomień push za pomocą MQTT. Nie zamierzam wdrażać kompletnej usługi, ale prototyp, jak to może być.

narzędzia będą używane,

  1. EMQ (Broker MQTT)
  2. MongoDB (do przechowywania informacji o użytkowniku)
  3. panel administracyjny (do publikowania powiadomień)
  4. aplikacja Android (klient)
  5. Eclipse Paho MQTT client (Android, JavaScript)


to duży obraz, jak komponenty w systemie współdziałają ze sobą.

chodzi o to, że użytkownik połączy się z brokerem mqtt, broker uwierzytelni je danymi w mongodb.
Przyjmij jako administrator systemu użytkownika, który opublikuje powiadomienia & inni użytkownicy będą subskrybować te powiadomienia . Przypuśćmy, [email protected] jest użytkownikiem, po uwierzytelnieniu za pomocą adresu e-mail użytkownik będzie subskrybował temat([email protected]), a następnie z panelu administratora, jeśli opublikujesz wiadomość w temacie [email protected] użytkownik otrzyma go. To wszystko.

schemat dokumentu MongoDB,

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

Załóżmy, że jest to panel administracyjny,

są 3 przyciski. Jeden do wylogowania, jeden do dodania użytkownika, a drugi do wysyłania powiadomień Push.
na ekranie widoczny jest widok powiadomień push. Panel administracyjny jest połączony z brokerem MQTT za pośrednictwem Websocket. Adres e-mail użytkownika jest tematem, w którym zostanie opublikowana wiadomość. Po kliknięciu na Wyślij opublikuje wiadomość za pomocą Websocket.

teraz, jeśli odpowiedni adres e-mail jest połączony & subskrybowany do danego tematu, Klient otrzyma wiadomość.

uwaga: jest to tylko prototyp do celów edukacyjnych, nie gotowy do produkcji. Aby użyć go w systemie produkcyjnym należy zaimplementować zabezpieczenia & w razie potrzeby inne strojenie.

Leave a Reply