Cześć czy w ASP.NET jest możliwość wyświetelnie listy aktywnych użytkowników ?
Tak.
Znasz może jakąś literature gdzie mógłbym sie nauczyć jak to zrobić :)
a) dodać swój customowy middleware, który będzie gromadził zalogowanych użytkowników gdy wysyłają requesty.
b) wysyłać calle z jsa losowo co 5-10min :D
c) ???
Co masz na myśli? Chodzi Ci o użytkowników którzy w danym momencie korzystają z aplikacji?
Tak własnie i szukam jakieś literatury poradnika gdzie mógłbym się tego nauczyć wyświetlać :)
Ja bym dodał do tabeli użytkownika kolumne w rodzaju lastActiveAt date i updatował przy każdym wysłanym zapytaniu do serwera, wtedy możesz sprawdzać wysztkisch używtkowników gdzie lastActiveAt w ciągu ostatnich 5 min, to da Ci mniejwięcej obraz . Jako że protokół http jest stateless czyli nie ma ciągłego połączenia między klientem a serwerem nie jeteś w stanie tego sprawdzić dokładnie.
Co każdy request chcesz robić update w bazie? Oo, wydaje mi się, że dużo tego będzie
ja to bym nadal poszedł w kierunku Middleware + jakiś serwis z static dictionary
zamiast spamować do db przy każdym zaciągnięciu jsów itd
WeiXiao napisał(a):
Co każdy request chcesz robić update w bazie? Oo, wydaje mi się, że dużo tego będzie
ja to bym nadal poszedł w kierunku Middleware + jakiś serwis z
static dictionary
zamiast spamować do db przy każdym zaciągnięciu jsów itd
To też jest rozwiązanie, Jednak nie widzę nic złego w updatowaniu rekordu użytkownika przy każdym zapytaniu, nie jest to skomplikowana operacja na nie zindeksowanych rekordach.
To jest bardzo słabe rozwiązanie. Po pierwsze - po co ci ta informacja w bazie? Po drugie - w przypadku małej aplikacji to można jeszcze jakoś przeżyć ale jeśli system będzie obsługiwał wielu użytkowników to lepiej chyba wykorzystać zasoby na ich obsługę a nie liczenie zalogowanych. Prosty MemoryCache załatwi sprawę
@var: no właśnie w przypadku dużego systemu MemoryCache sprawy nie załatwi, to zadziała tylko w małym systemie, któremu wystarczy jedna instancja.
W przypadku dużych systemów chyba najlepiej zastosować jakąś bazę w pamięci, np. Redis. Skalowalność wtedy też nie jest problemem.
A jakby użyć signalra i łączyć się do kanału po wejściu na stronę?