Jak vypsat uživatele, kteří jsou online

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
vcernik
Člen | 32
+
0
-

Zdravím,
chtěl bych se zeptat, jak byste řešili toto:
Mám web, kam se přihlašují uživatelé (zatím pár desítek, plánuji rozšířit – očekávám stovky). Chtěl bych, aby se zobrazovalo, kdo z uživatelů je online.

Napadá mě akorát to, že by stránka v nějakém intervalu (15s?) posílala ajaxem info o uživateli. Tím by systém věděl, že daný uživatel je online. Přijde mi to ale trochu „drastické“ na server.

Neexistuje nějaké jiné řešení? :)
Díky!

mm-marek
Člen | 61
+
0
-

Nejdřív je potřeba vědět, proč je to potřeba. Nejjednodušší mi přijde mít nějaký timestamp s nějakou platností od přihlášení a ten aktualizovat při každém načtení stránky.

vcernik
Člen | 32
+
0
-

Je to něco jako „sociální síť“ – pro úzkou cílovou skupinu. Přihlášený uživatel uvidí, kdo z jeho známých je právě online a může mu napsat zprávu.
Přijde mi, že když by se to aktualizovalo až když něco udělá, že to bude pozdě – znám spoustu lidí, kteří např. Facebook mají spuštěný a vůbec nic tam nedělají (tedy čekají až jim někdo napíše).

Mikulas Dite
Člen | 756
+
0
-

Jestli tam není moc (fakt hodně) uživatelů, možná by stálo za to zkusit to napsat pomocí html5 websocketů. Jinak zbývá pouze ukládat a potom se serveru ptát a ptát a ptát v nějakém intervalu z klienta.

Patrik Votoček
Člen | 2221
+
0
-

řeší se to většinou timestampem na akci („kliknutí“) jak píše mm-marek. V dnešní době bych to řešil WebSocketama třeba Socket.io

vcernik
Člen | 32
+
0
-

Bohužel i v dnešní době spousta lidí používá zastaralé prohlížeče, které tyto nové technologie nepodporují.

OK3
Člen | 91
+
0
-

No tak tim ajaxem, jak jsi psal.
Při nějakém rozumném počtu (stovky?) uživatelů online v jednu chvíli by to neměl být problém. Perioda aktualizace několik sekund.