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,
- EMQ (Broker MQTT)
- MongoDB (do przechowywania informacji o użytkowniku)
- panel administracyjny (do publikowania powiadomień)
- aplikacja Android (klient)
- 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