Оборвал ли пользователь соединение?

Larson

Новичок
Оборвал ли пользователь соединение?

Привет!

У меня такой вопрос. Есть несколько пользователей, подключенных одновременно к серверу. Как определить, например, первому пользователю, оборвали ли другие соединение с сервером?
 

Alien

Новичок
Подробности, пациент, подробности!
Ты о пользователях где то инфу хранишь?
В БД, файле?
Если хранишь то при перерыве между запросами более XXX секунд считай что данный пользователь для тебя потерян.
 

Larson

Новичок
Автор оригинала: Альен
Подробности, пациент, подробности!
Ты о пользователях где то инфу хранишь?
В БД, файле?
Если хранишь то при перерыве между запросами более XXX секунд считай что данный пользователь для тебя потерян.
Это понятно. А существует какой нибудь другой метод?

P.S. А какое время ХХХ можно считать оптимальным. Т.е. не учитывая время, которое понадобится юзеру на прочтение то или иной страницы, какое время можно считать оптимальным для осуществления самого запроса - от момента, когда юзер нажал ту или иную кнопку или ссылку, до момента получения запроса сервером (т.е. учитывая разную скорость связи, качество связи и т.п.)?
 

Dem

Guest
А какое время ХХХ можно считать оптимальным
Это зависит от типа твоего ресурса.
Я у себя на форуме ставил 15 минут, после которых (если юзер не передвигался по форуму) запись о его посещении удаляется. Это механизм отображения онлайновых юзеров.
 

Alien

Новичок
Верно, смотря что за ресурс.
Если это чат с рефрешем в 10 секунд - то с большой вероятностью что если он не запросил след. страницу за 60 секунд то он из него уже куда то ушел.

Можно перестраховаться - через 60 секунд остальным посетителям в списке онлайновых пользователей этого товарища не показывать, а из БД удалять скажем через 10 минут.

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

Сам запрос - килобайт - другой. Это довольно таки быстро до сервера дойдет.
Хуже с получением ответа сервера.
Я могу сидеть на канале в 100 mbps и мне ответ будет приходить за доли секунд, или на диалапе в черт-те-где с забитым каналом -> загрузка минутами.
 

DiMA

php.spb.ru
Команда форума
я как-то рассказывал 100% способ определить кто в онлайне...

загоняем весь сайт в два фрейма: 100% и 1 пиксель. В первом - наш сайт. Во-вротором - линк на прогу, которая открывает и держит коннект. Пока чел ходит по сайту и не закрывает браузер, то коннект держиться. Как только чел уйдет (все ссылки наружу нужно делать с target=_top), коннект пропадет. В этой проге делаем реакцию.
 

Ямерт

The Old One
Это решение 1:1 реализовано в большинстве IRC-клентов на базе Веба - к примеру, CGI:IRC (http://cgiirc.sourceforge.net).
 

DiMA

php.spb.ru
Команда форума
про ирц и чаты понятно, у меня самого чат с постоянным коннектом. Суть в том, что в чате без этого нельзя, т.е. там это необходимо. А на сайте можно обойтись.
 
Сверху