Licznik osób online

0

Witam,
Pisze z zapytaniem o logikę tworzenia licznika online osób na stronie. Większość z nich opiera się na dodawaniu 'osób' do bazy danych, dodawania cookie i odświeżaniu go wraz z wpisem w bazie jeśli dany user nadal jest na stronie.
Tylko każde wejście, przeładowanie strony powoduje akcję na bazie danych. Jeżeli mielibyśmy sporo użytkowników to troszkę to rośnie.
Czy dodawanie osób online do bazy danych i odczytywanie z niej jest poprawnym mechanizmem dla liczników osób online czy idzie to inaczej rozwiązać?

0

Tu chodzi o ilość sesji po prostu. Często portale mają swój własny mechanizm sesji, który właśnie umieszcza te informacje w bazie danych. Gdy sesja się kończy, rekord jest usuwany. Ważne, żeby taka tabela była składowana w pamięci, a nie na dysku. Jeśli używasz MySQL/MariaDB, to jest tam takie ustawienie podczas tworzenia tabeli. Jak jest w innych DBMS to nie wiem.

0

OK, rozumiem ze ma być w pamięci to można użyć do tego także innych mechanizmów jak redis czy memcached? Tak by nie mieć jej fizycznie na dysku bo to nieoptymalne rozwiązanie?

0

Pytanie czy trzeba to robić, czy można np. dodać skrypt Google Analytics i te informacje mieć z automatu (dla celów statystycznych przynajmniej, jeśli chcesz pokazać użytkownikowi to nie wiem czy się by tak dało. Z drugiej strony liczba użytkowników online pokazywana użytkownikom to zwykle niepotrzebny gadżet. Chociaż zależy oczywiscie od tego, jakiego rodzaju aplikację się robi (w czacie czy grze online może mieć to kluczowe znaczenie, ale na stronie, na której są jakieś artykuły już niekoniecznie).

0

To już nie ważne czy to potrzebne czy nie, chodzi mi o kwestie techniczną. Jak zbudować taki licznik osób online żeby byłby najbardziej wydajny.

1

Dokładnie jak to opisałeś. Nie trzymać tych danych na dysku, tylko w pamięci. Dlatego tabela powinna być odpowiednio składowana. Czy da się to zrobić bez bazy danych? Nie wiem. Aż tak głęboko w php nie siedzę. Jednak wszystkie frameworki z jakimi do tej pory pracowałem przechowywały te dane w tabeli trzymanej w pamięci. Może są jakieś nowsze możliwości (ja ostatnio swoją phpową wiedzę aktualizowałem dla ostatniej wersji 5). Co do google analytics, nie wiem, czy tak się da. Trzeba by było sprawdzić, czy udostępniają jakieś swoje API. Wydaje mi się, że tylko w programach płatnych.

0
dervill napisał(a):

To już nie ważne czy to potrzebne czy nie, chodzi mi o kwestie techniczną. Jak zbudować taki licznik osób online żeby byłby najbardziej wydajny.

Ale chcesz ten licznik pokazywać na stronie, czy chcesz to zapisywać w swojej bazie do celów analizy ruchu na stronie?

0

Na stronie, chce pokazać ile osób jest obecnie online.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0