Jak uzyskać dokładną całkowitą liczbę odwiedzających w ASP.NET
Chcę poznać liczbę użytkowników online w mojej witrynie. Zrobiłem moje badania i znalazłem dwa rozwiązania.
Źródło: Code Project
Licznik aktywnych użytkowników online w ASP.NET
Jest łatwy w konfiguracji i obsłudze, ale zwiększa również liczbę użytkowników dla każdego żądania / odpowiedzi Ajax. Moja strona główna ma 12 żądań Ajax (8 żądań na jedną stronę i 4 żądania na inną stronę). To znacznie zwiększa liczbę użytkowników.
Źródło: Przepełnienie stosu Q / A
Policz nie odwiedzających Ten działa dokładnie tak samo jak poprzedni.
Źródło: Forum ASP.NetJak zobaczyć „kto jest online” za pomocą C #
Ten wygląda lepiej niż dwa poprzednie. Oto szczegółowy kod tego rozwiązania.
void Application_Start(object sender, EventArgs e)
{
// Code that runs on application startup
HttpContext.Current.Application["visitors_online"] = 0;
}
void Session_Start(object sender, EventArgs e)
{
Session.Timeout = 20; //'20 minute timeout
HttpContext.Current.Application.Lock();
Application["visitors_online"] = Convert.ToInt64(HttpContext.Current.Application["visitors_online"]) + 1;
HttpContext.Current.Application.UnLock();
}
void Session_End(object sender, EventArgs e)
{
HttpContext.Current.Application.Lock();
Application["visitors_online"] = Convert.ToInt64(HttpContext.Current.Application["visitors_online"]) - 1;
HttpContext.Current.Application.UnLock();
}
Wydaje się, że jest w stanie zignorować rosnącą liczbę dla każdej odpowiedzi Ajax, ale nadal sumuje się dla każdego odświeżenia strony lub żądania strony.
Czy jest jakieś podejście do liczenia dokładnej liczby użytkowników online w ASP.Net?