Aktywni użytkownicy w ASP.NET

Aktywni użytkownicy w ASP.NET
Michał Warmuz
  • Rejestracja:prawie 6 lat
  • Ostatnio:ponad 3 lata
  • Postów:253
0

Cześć czy w ASP.NET jest możliwość wyświetelnie listy aktywnych użytkowników ?

somedev
  • Rejestracja:prawie 7 lat
  • Ostatnio:prawie 5 lat
  • Postów:666
1

Tak.

Michał Warmuz
  • Rejestracja:prawie 6 lat
  • Ostatnio:ponad 3 lata
  • Postów:253
0

Znasz może jakąś literature gdzie mógłbym sie nauczyć jak to zrobić :)

WeiXiao
  • Rejestracja:około 9 lat
  • Ostatnio:około 3 godziny
  • Postów:5133
1

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) ???

edytowany 2x, ostatnio: WeiXiao
LI
  • Rejestracja:ponad 5 lat
  • Ostatnio:ponad 3 lata
  • Postów:5
1

Co masz na myśli? Chodzi Ci o użytkowników którzy w danym momencie korzystają z aplikacji?

Michał Warmuz
  • Rejestracja:prawie 6 lat
  • Ostatnio:ponad 3 lata
  • Postów:253
0

Tak własnie i szukam jakieś literatury poradnika gdzie mógłbym się tego nauczyć wyświetlać :)

JD
  • Rejestracja:około 19 lat
  • Ostatnio:około 11 godzin
LI
  • Rejestracja:ponad 5 lat
  • Ostatnio:ponad 3 lata
  • Postów:5
2

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.

edytowany 1x, ostatnio: liwaskiewicz
WeiXiao
  • Rejestracja:około 9 lat
  • Ostatnio:około 3 godziny
  • Postów:5133
5

@liwaskiewicz:

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

edytowany 2x, ostatnio: WeiXiao
LI
  • Rejestracja:ponad 5 lat
  • Ostatnio:ponad 3 lata
  • Postów:5
1
WeiXiao napisał(a):

@liwaskiewicz:

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.

VA
  • Rejestracja:ponad 7 lat
  • Ostatnio:15 dni
1

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ę

somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:6 dni
  • Lokalizacja:Wrocław
0

@WeiXiao: a jak ten static dictionary się skaluje?

@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. Ale ja bym nie szedł taką drogą, no chyba że to projekt na studia.

WeiXiao
@somekind: powinno być OK nawet przy dziesiątkach tysięcy wpisów. Właściwie robisz tylko AddOrUpdate i raz na jakiś czas wyliczasz ilu userów było aktywnych.
somekind
Ale Ty rozumiesz, że w zależności od instancji na którą trafisz, dostaniesz inną listę użytkowników?
WeiXiao
Myślałem, że chodziło Ci o wydajność (ms), a nie kilka instancji aplikacji. No nie skaluje się, ale o tym nie było mowy.
somekind
Jak dla mnie, to skalowanie to właśnie dodawanie nowych instancji. :)
WeiXiao
Tak, ale na początku zrozumiałem to jako "jak to się skaluje (z liczbą userów)", bo nikt nic nie pisał o instancjach.
Aventus
  • Rejestracja:około 9 lat
  • Ostatnio:ponad 2 lata
  • Lokalizacja:UK
  • Postów:2235
1

@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.


Na każdy złożony problem istnieje rozwiązanie które jest proste, szybkie i błędne.
edytowany 1x, ostatnio: Aventus
E9
  • Rejestracja:ponad 13 lat
  • Ostatnio:12 miesięcy
  • Postów:395
0

A jakby użyć signalra i łączyć się do kanału po wejściu na stronę?

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.