Autor | Zpráva | ||
---|---|---|---|
Dejv Profil * |
#1 · Zasláno: 14. 3. 2013, 10:03:41
Dobrý den,
řeším to, jak zjišťovat online status uživatelů. Počítám s obnovováním nějakého souboru přes Ajax např. po 5s. Teď přemýšlím, jak ale evidovat, že uživatel je skutečně na stránce, např. nezavřel již okno. Ukládat tyto záznamy do db? Nechci ji příliš zatížit, předpokládám v budoucnu velkou aktivitu uživatelů. V db eviduji zatím poslední příhlášení (unix time), poslední aktivu (příspěvek, unix time). Hledám radu člověka, který něco takového realizoval, děkuji. D. |
||
aDAm Profil |
#2 · Zasláno: 14. 3. 2013, 10:13:31
Co takhle při každém načtení stránky uživatelem udělat log jeho aktivity? a když je jeho aktivita delší než třeba 5min tak jej prohlásit za offline.
|
||
Str4wberry Profil |
#3 · Zasláno: 14. 3. 2013, 10:16:36
Nejprve bych se zamyslel, zda je to přesné zjišťování vůbec potřebné. Často může stačit si při načtení stránky uživatelem uložit čas a s nějakou časovou tolerancí od tohoto momentu považovat uživatele za online.
|
||
Joker Profil |
Dejv:
Jestli to je tak jak je popsáno, „ping“ by určitě měl aktualizovat poslední aktivitu v databázi. Případné výkonové problémy bych řešil v první řadě prodloužením toho intervalu „pingání“. Opravdu je nutné aktualizovat stav každých 5 sekund? Už jen to, že by 20 lidí mělo web otevřený v prohlížeči a jinak nebudou nic dělat, by na serveru vyrobilo 240 požadavků za minutu. V typických aplikacích by podle mě byl dostačující interval i minuta, možná i několik minut, kdy bude množství požadavků na server řádově nižší. Dodatek: A samozřejmě je dobré zvážit i možnost, kterou popisují kolegové výše: Jestli by nestačilo brát jako „online“ nějakou dobu od načtení poslední stránky. |
||
Dejv Profil * |
#5 · Zasláno: 15. 3. 2013, 17:57:09
Joker:
To je dobrý nápad. Minuta bude OK. Jde o to, že budu rozšiřovat možnost chatu a nechci aby nastala situace, kdy někomu píšu, odešlu a čekám dobu a pak zjistím, že už je 5 minut offline. O to jde. |
||
aDAm Profil |
#6 · Zasláno: 15. 3. 2013, 18:15:13
tak chaty se obecně řeší jinak že, tam ti jede na pozadí komunikace stále v nějakém intervalu.
|
||
Dejv Profil * |
#7 · Zasláno: 15. 3. 2013, 19:09:38
aDAm:
Ano, tady to byli PM zprávy ale honěné AJAXEM. |
||
Dejv Profil * |
#8 · Zasláno: 16. 3. 2013, 16:38:05
Ještě jsem nedostal konkrétní odpověď. Jak zjistím, že uživatel zavřel okno? To je asi nejdůležitější akce, kterou bych chtěl ovlivňovat online status.
|
||
margin Profil * |
#9 · Zasláno: 16. 3. 2013, 17:47:05
Události JavaScriptu onUnload
Z různých důvodů to není stoprocentní, třebas některé prohlížeče onunload neodesílají, někdo nechá stránku otevřenou, ale uspí OS... |
||
Časová prodleva: 11 let
|
0