Cześć!
Chcę zrobić prosty program służący do komunikacji tekstowej i zastanawiam się nad wyborem protokołu, który służyłby do komunikacji klientowi otrzymania nowej wiadomości (ale też np. otrzymania zaproszenia do znajomych).
Obecnie jako wybór rozpatruję wybór MQTT, ale nie jestem pewny co do wyboru tego protokołu, jako że jest to odrobinę nietypowe wykorzystanie.
Przykładowy schemat komunikacji przedstawiałby się następująco:
- Klient pobiera klucz publiczny z api.
- Klient komunikuje sie z rest api - loguje sie za pomoca username i password (szyfrowane z wykorzystaniem pobranego klucza publicznego).
- Serwer zwraca jwt tokena, tokena do odswiezania tego pierwszego i jwt tokena jako device cookie (o ile zaznaczono remember me).
- Klient subskrybuje topicki, np. jwttoken:messages lub jwttoken:conversationid.
- Klient wysyła obiekt wiadomości - do rest api, które zapisuje ją w bazie danych i publishuje (wykorzystując brokera np. mosquitto) nową wiadomość (obiekt klasy zdeserializowany do jsona) do topicka właściwego dla docelowego odbiorcy.
- Odbiorca subskrybujacy topic odbiera wiadomość i deserializuje obiekt.
W związku z tym chciałbym się zapytać, czy ktoś może miał styczność z takim wykorzystaniem i czy istnieje sens takiego rozwiązania (a jak nie w jakim kierunku mógłbym się skierować - oprócz okresowego odpytywania api, czy nie pojawiło się coś nowego)?