Pracuję nad aplikacją, która musi powiadomić użytkownika, gdy otrzyma nowe powiadomienie. Aplikacja będzie hostowana na platformie Azure i będzie .NET MVC 3 (prawdopodobnie nie jest to ważna, ale na pewno). TeżWysyłanie powiadomień PushalR do wszystkich instancji przeglądarki pojedynczego uwierzytelnionego użytkownika
Powiadomienia są zapisywane w MSSQL db (2008) i mają pole IsRead
. Powiadomienia generowane są z różnych działań użytkownika i serwera. Na podstawie preferencji użytkownika niektóre powiadomienia będą tworzone z numerem IsRead == false
.
mam 2 różne scenariusze, że czuję, że SignalR będzie idealny w obsłudze, po prostu trzeba trochę wskazówek:
- Użytkownik ma kilka otwartych oknach przeglądania strony i nowe powiadomienie wiersz dodaje przypisany do tego użytkownika, z
IsRead == true
- Chciałbym wszystkie instancje przeglądarki konkretnego użytkownika, aby mieć określoną funkcję js nazwie ujawnić powiadomienie pop-up
- użytkownik ma kilka wiatr Otwiera się i klika powiadomienie pop-up.
- Chciałbym, aby wszystkie instancje przeglądarki określonego użytkownika wywoływały określoną funkcję js, aby usunąć wyskakujące powiadomienie. (Jedynie specyficzny przykład przeglądarka obsługiwane kliknięcie będzie również wykonać funkcję js, aby pokazać szczegóły powiadomień)
Co Próbowałem
Na pierwszym scenariuszu, myślę że to samo działanie, które powoduje zapisanie powiadomienia w bazie danych, będzie odpowiedzialne za powiadamianie o wszystkich instancjach przeglądarki użytkownika.
Drugi scenariusz byłby podobny do tego, klikając w pop-up, punkt końcowy serwera byłby wywoływany przez Ajax i ten punkt końcowy aktualizowałby bazę danych, aby oznaczyć powiadomienie jako przeczytane, a następnie powiadamiał wszystkie wystąpienia przeglądarki innych użytkowników. .
Jeśli istnieje sposób na śledzenie klientów SignalR w oparciu o nazwę użytkownika ASP.NET Forms Username, to myślę, że będzie działać w celu rozwiązania problemów w obu scenariuszach.
TL; DR
Moim głównym problemem jest to, że nie wiem, jak do sygnalizowania wszystkich przypadkach przeglądarek jednego konkretnego użytkownika Korzystanie SignalR. Zastanawiałem się nad utworzeniem grupy opartej na nazwie użytkownika ASP.NET Forms Authentication. Czy to działa? Czy istnieje łatwiejszy sposób, który jest wbudowany w SignalR, który to obsługuje?
Dziękuję za komentarz. Wypróbuję to i zobaczę jak to działa! –
To zadziałało świetnie! Dzięki :) –