Как в PHP отследить выход пользователя, например из чата?

oleg_ole

Новичок
Как в PHP отследить выход пользователя, например из чата?

Как в PHP отследить выход пользователя, например, из чата?
Пожалуйста, напишите мне как это можно сделать если пользователь не нажал клавиши "Выход" в чате, а просто закрыл страницу или вообще вышел из инета.
 

Фанат

oncle terrible
Команда форума
из чата - очень просто.
если, скажем, он ни не обратился за новой информацией - значит, вышел.
 

oleg_ole

Новичок
а как и где это описать кодом? и что значит "ни не обратился за новой информацией"?
 

Фанат

oncle terrible
Команда форума
писать в коде чата.
заносить время всех обращений в таблицу или файл
и просматривать этот файл на предмет выбвыших
если давно не обращался - значит, выбыл

не обратился за новой информацией значит, что чаты устроена так, что браузер постоянно попрашивает сервер на предмет новых сообщений.
если браузер перестал запрашивать сообщения - значит, пользователь вышел из чата.
 

oleg_ole

Новичок
спасибо! ... понял. я думал можно как-нибудь без этих файловых проверок обойтись.

а нельзя на каждого пользователя заводить сессию. и если пользователь вышел или просто закрыл окно браузера, сессия будет удаляться. только проблема: как в коде проверять какие сессии работают, а какие уже нет?
 

Dreammaker

***=Ф=***
oleg_ole, как вариант перенести обработчик сессий в базу (можно в сети найти классы для этого).

Хотя это уже почти лишнее, в большинстве случаев хватает, просто занесения данных о времени юзера онлайна.
 

sni

Новичок
неправильно считать пользователя вышедшим, если он не пишет - я сам порой сижк по часу в чате и молчу, наблюдая :)
Правильней, как писали смотреть отвечает ли его браузер....
 

Фанат

oncle terrible
Команда форума
sni
согласен - неправильно.
вот только нигде в этой теме никто и не говорит, что пользователя считают вышедшим, если он не пишет.

а вот браузер серверу отвечать никак не может. потому что сервер его спросить не может.
так что тебе я тоже рекомендую ссылку для прочтения.
 

sni

Новичок
Фанат да.. отвечает громко сказано. наверно под ответом я имел ввиду что запрашивает обоновление каких-то данных с сервера. Спасибо за ссылку, обязательно прочитаю :)
 
Сверху