Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PUSH] Jak poznać, że użytkownik wyłączył stronę internetową
bpawel10
post
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 9.10.2010

Ostrzeżenie: (0%)
-----


Witajcie,

mam mały problem związany z komunikacją push.

Mianowicie, gdy użytkownik się wyloguje, to w skrypcie wylogowującym mogę umieścić instrukcję wysyłającą pushem informacje, że należy go usunąć z listy osób online. Ale gdy użytkownik po prostu zamknie stronę, to w jaki sposób mam się o tym dowiedzieć?

Jedyne, co mi przychodzi na myśl, to co np. 10 sekund każdy musi się "rejestrować" czyli by było odpowiednie pole w bazie z datą ostatniej rejestracji i byłoby ono aktualizowane co 10 sekund. Wtedy wystarczyłoby sprawdzać tą datę i gdy różniłaby się od aktualnej od ponad 10 sekund, użytkownik uznawany by był za wylogowanego. Tylko że wtedy nie dość, że muszę co 10 sekund wykonywać zapytanie do bazy (przy większej liczbie użytkowników jest to chyba duże obciążenie) to jeszcze musiałbym stosować long polling celem sprawdzania którzy użytkownicy są zalogowani. Czy jest jakieś lepsze rozwiązanie tego problemu?

Ten post edytował bpawel10 8.02.2014, 19:52:28
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
matiit
post
Post #2





Grupa: Zarejestrowani
Postów: 365
Pomógł: 70
Dołączył: 5.04.2009

Ostrzeżenie: (0%)
-----


http://msdn.microsoft.com/en-us/library/ie...3(v=vs.85).aspx
Go to the top of the page
+Quote Post
bpawel10
post
Post #3





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 9.10.2010

Ostrzeżenie: (0%)
-----


A gdyby użytkownik po prostu odłączył zasilanie od komputera? Wtedy już nie zadziała (IMG:style_emoticons/default/smile.gif)

A co gorsze, zdarzenie onunload nie jest obsługiwane przez Chrome i Operę :/

Ten post edytował bpawel10 8.02.2014, 20:58:19
Go to the top of the page
+Quote Post
matiit
post
Post #4





Grupa: Zarejestrowani
Postów: 365
Pomógł: 70
Dołączył: 5.04.2009

Ostrzeżenie: (0%)
-----


Wiem, ale jeśli bierzesz pod uwagę wyłączenie zasilania - no to nie ma innego sposobu jak odpytywanie co jakiś czas.
Go to the top of the page
+Quote Post
bpawel10
post
Post #5





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 9.10.2010

Ostrzeżenie: (0%)
-----


A gdybym nie brał - jest jakiś podobny sposób, tyle że działający pod każdą przeglądarką?
Go to the top of the page
+Quote Post
matiit
post
Post #6





Grupa: Zarejestrowani
Postów: 365
Pomógł: 70
Dołączył: 5.04.2009

Ostrzeżenie: (0%)
-----


Spróbowałbym z window.addEventListener("popstate", function(e) { ... });
Go to the top of the page
+Quote Post
slashynsky
post
Post #7





Grupa: Zarejestrowani
Postów: 30
Pomógł: 7
Dołączył: 7.02.2014
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Kiedyś robiąc taki skrypt jako totalny amator miałem tabele w bazie z polami user i czas, gdy user kliknął jakiś link lub odświeżył stronę czas w bazie był uaktualniany i jednocześnie kasowani użytkownicy z czasem > 5 min temu. Na pewno skuteczne (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
bpawel10
post
Post #8





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 9.10.2010

Ostrzeżenie: (0%)
-----


A nie wiadomo, jak rozwiązał to Facebook albo Kurnik?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 14:10