Signalr - koncepcja komunikacji + przechowywanie komunikatów w bazie danych

0

Cześć,
Użyłem w mojej aplikacji SignalR jako system do powiadomień (np. zlecenie gotowe do realizacji, pojawiło się nowe zlecenie).
Przykładowo :
Klient wchodzi na swoje konto tworzy nowe zlecenie i wówczas zostaje wysłana wiadomość do Pracownika że pojawiło się nowe zlecenie.
Obecnie robię to tak :
Po wykonaniu operacji utworzenia nowego zlecenia tworze wpis w bazie w tabeli Notification.
Następnie dla grupy "pracownicy" robię refresh, ( Clients.Group("Pracownicy).refresh() )
Natomiast u na pracowniku łapie ten event (chat.client.refresh) i każe mu pobrać z tabeli notification 10 ostatnich wpisów z bazy dla nich.

Sposób ten działa ale chciałbym się doradzić czy ten mój tok rozumowania jest w porządku czy można to jakoś łatwiej i efektywniej zrobić. Nie pracowałem wczesniej z SignalR więc liczę na sugestie.
Pozdrawiam

1

Server side zrobiłeś przez "odpytywanie", czyli "gorzej" od asynchronicznych mechanizmów na frontendzie
Chyba należało by użyć brokera messadżingowego, Rabbit MQ, Kafka, Active MQ i wiele innych

UPDATE. Baza danych nie jest przeznaczona do dynamicznego rozpowszechniania informacji (choć jakieś pół-prowizoryczne rozwiązania się robi)

Materiał jest nt Kafki, ale traktuj go jako wprowadzenie do tej grupy rozwiązań. Jedna z ciekawszych prezentacji na początek

0

Witam,

Posil się SqlTableDependency

Pozdrawiam,

mr-owl

1 użytkowników online, w tym zalogowanych: 0, gości: 1