Wpis z mikrobloga

Murki, potrzebuję zrobić w apce (webowej, choć pytanie stawiam ogólnie) powiadomienia. Niby prosta rzecz, ale w nigdy nie robiłem. Mam ogólne pojęcie jak to zrobić, ale po co wyważać otwarte drzwi? ;) Gdzie mogę znaleźć jakieś fajne "patterns" czy inne "best practicies"? Ciężko się googla, bo albo trafiam na powiadomienia desktopowe, albo push notifications. Mi chodzi o samą koncepcję, niezależną od kanału komunikacji. Mówię o takich powiadomieniach jak to co jest w prawym górnym rogu wypoku (czyli nowe wpisy w tagach albo nowe wiadomości).
Czyli co najlepiej przewidzieć w strukturze takiego powiadomienia i jak powinien przebiegać sam algorytm odpytywania o nowe/wypychania nowych powiadomień.
#programowanie (a konkretnie #csharp #dotnet #aspnet.mvc, ale tak jak pisałem - nie chodzi mi o czysto technologiczną płaszczyznę)
  • 9
Przykładowo. Mam klaskę w której mam autoincementowane id oraz login. Klient pyta "pokaż mi wszystkie moje (login) powiadomienia o id większym niż ostatnie jakie znam).
Tylko teraz kwestia ładnego oznaczania jako przeczytane (na wszystkich instancjach klienta), albo np. powiadomienia dla grupy użytkowników etc etc.
Każdy sam musi sobie to kiedyś wymyślić i zrobić czy może są jakieś przemyślane przykłady na których się można wzorować? Tzn. to, że są to wiem, ale coś
@drajvver: o trochę większy stopień skomplikowania mi chodzi ;)
np. teraz widzę, że nie mogę pytać o id, ale raczej o jakieś rowversion, bo dochodzi kwestia przeczytania powiadomienia na innych zakładkach.
@meetom: Jeśli użyjesz websocketów, każda zakładka jest zasubskrybowana do kanału np. "user:meetom". W momencie gdy serwer #!$%@? coś do kanału, wszystkie zakładki dostają wiadomość i mogą ją narysować na stronie.
Gdy jedna zakładka jest na tagu #programowanie - subskrybuje się do kanału "tag:programowanie" i gdy ktoś dodaje post z tagiem, serwer #!$%@? do coś do tego kanału.
@drajvver: próbowałem najprostszy przykładowy projekt na SignalR odpalić:
1. Nowy projekt typu ASP.NET Web Application
2. Nuget SignalR + SignalR.Sample
3. Dodane app.MapSignalR(); w Startup->Configuration
4. Po uruchomieniu wisi na powyższej linijce.
5. Brak profitu :(
@drajvver: robię drugie podejście do SignalR. Okazuje się, że w punkcie 3 ma być:

Microsoft.AspNet.SignalR.StockTicker.Startup.ConfigureSignalR(app);
Co innego mówił Microsoft.AspNet.SignalR.Sample a co innego Microsoft.AspNet.SignalR.Core ;)