
Nápad na algoritmus (přihlášování)
Ahoj,
mám webovou aplikaci a potřebuji u ni mít možnost (dodělat) nastavit maximální počet přihlášených uživatelů současně.
Takže jde o to, aby se zároveň mohlo přihlásit například 5 uživatelů, ale šestého , aby to už vykoplo s nějakou hláškou.
Vzhledem k tomu, že aplikace je webová, a běží stejně takto v prohlížeči, ve kterém toto čtete nyní, vyplývá z toho řada podmínek.
Jde o to, aby současně mohlo být přihlášeno maximálně například 5 uživatelů. (Tuto hodnotu bude možné nastavovat).
Vzhledem k tomu, jak jsem už psal, nelze se spoléhat ani na korektní odhlašování a přihlašování.
Je nutno počítat s tím, že uživatel zavře prohlížeč, spadne mu internet atd... atd... takže ani nelze nastavovat napevno mechanismus:
"Přihlášen / odhlášen"
Na straně druhé mám k dispozici všechny běžné mechanismy (Databázi / cookies/ sessions....)
Jde mě jen o nápady, jak je možné toto celé řešit.
Když se nad tím vzevrubně zamýšlím, asi bude nutné ukládat do databáze termíny posledních přihlášení,
a tyto při neaktivitě po nějaké době nechat expirovat.
Konkrétněji jsem nad tím zatím nedumal.
Obecně jde o omezení na jeden "login".
Tzn. budu mít třeba tři loginy. Na první se půjde přihlásit dvakrat. Na druhý pětkrát. A na třetí třeba jen jednou. Jako současně myslím, z více zařízení.
Udelej normalni prihlasovani, akorat pred kazdym prihlasenim zkontroluj, jestli uz dany user neni prihlaseny vicekrat nez dovolujes. Algoritmus ktery hledas, je jeden if...
Ajaxové periodické notifikace serveru, že klient je živý. Případně trvalé Websocket spojení. A pak počítadlo na spojení na serveru a expirace.