Krismen
27.02.2012, 13:44:45
Witam.
Próbuję stworzyć chat i z pewną rzeczą nie umie sobie poradzić. A więc użytkownik wchodzi na stronę i wymyśla sobie login. Login ten ląduje w bazie a user jest przekierowywany na stronę z czatem ogólnym gdzie dostaje ciasteczko. Wszystkie loginy ludzi aktualnie przebywających na czacie pobieram z bazy i wyświetlam na stronie. Żeby odbywało się to bez przeładowania wykorzystuję funkcję setInterval. Ciasteczko jest tak ustawione, że ginie po zamknięciu przeglądarki. I teraz najważniejsze - w jaki sposób przekazać informację do serwera że ciacho w jego przeglądarce już nie istnieje i usunąć użytkownika z listy zalogowanych użytkowników. Czy serwer/baza może sprawdzać u użytkowników czy mają na dysku mój plik cookies czy już zamknęli przeglądarkę? Nie wiem czy dobrze kombinuję... Ktoś pomoże?
Barcelona
27.02.2012, 16:58:24
Tak samo jak robisz listę userów aktywnych na stronie, możesz zrobić listę userów aktywnych na chacie.
W tabeli DB dodajesz usera który się loguje, a podczas wylogowania kasujesz tego usera z tabeli. Możesz również dać warunek który sprawdza czy user jest nieaktywny dłużej niż np. 1 minuta.
Krismen
27.02.2012, 17:48:13
OK, można by tak zrobić ale pewnie jest jakieś lepsze rozwiązanie. Fakt, że ktoś przez 1 minutę nic nie pisze nie oznacza że opuścił czat bo może tylko czytać co piszą inni i myślę że ma takie prawo nawet przez godzine... Na czacie wp czy onetu wygląda to tak, że mój login znika z listy dostępnych użytkowników w ułamku sekundy, dokładnie w tym momencie w którym zamykam okno przeglądarki... Ktoś wie jak to jest tam rozwiązane?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.