|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Jul 2013
Сообщений: 21
|
Как отследить дисконнект пользователя?
Привет всем! У меня есть чат написанный на флеш который работает по принципу xml+refresh. Каждые 3 секунды по таймеру флеш получает список пользователей онлайн. Когда юзер жмет кнопку выход выполняется функция которая удаляет его из списка онлайн. Все бы ни чего, но проблема в том что когда тот же юзер закрывает браузер,вкладку он не удаляется из списка онлайн. Как отследить закрытие браузера,вкладки или обрыва коннекта с сервером я не знаю. Помогите мне уже всю голову сломал как это сделать.
P.S Может кто нибудь подкинет примерчик как это сделать с помощью socket? |
|
|||||
Ну если не было n секунд refresh-а, то пользователь отключился. Как то так.
__________________
http://www.chessmax.ru |
|
|||||
Регистрация: Jul 2013
Сообщений: 21
|
интересно как я это на сервере отслежу?
подкиньте примерчик.. |
|
|||||
Путем сохранения времени последнего запроса refresh-а?
__________________
http://www.chessmax.ru |
|
|||||
Цитата:
Как пользователь вообще попадает в список онлайн? И что из себя представляет этот список, текстовый файл, база данных или что? И на чем сервер написан? |
|
|||||
Регистрация: Jan 2011
Сообщений: 200
|
Присоединюсь к caseyryan. Вы же как-то авторизуете юзера, чтобы он попал в список онлайн? Заводите ему какую-то сессию? Если да, то выкидываем из листа по окончанию сессии, если нет, то придется запоминать время последнего refresh'a и выкидывать по нему.
|
|
|||||
Регистрация: Jan 2013
Сообщений: 126
|
и я присоединяюсь к вам)
В конце как сборщик мусора пройтись по списку и пинговать каждую минуту, чтоб удостовериться в полном отключении юзера. В любых социалках при закрытии вкладки или бразуера только так делают. Если не была нажата кнопка Выход, то есть не было команды Я вышел, значит надо отслеживать со стороны сервера. |
|
|||||
Регистрация: Jul 2013
Сообщений: 21
|
Естественно постаянного коннекта нет. Пользователь попадает в список онлайн когда нажимает кнопку зайти в чат. Список находится в обычном текстовом файле. Сервер PHP. Что бы делать постоянный коннкет нужен соответственно сокет в котором я ни черта не разбираюсь
|
|
|||||
Ну в чем проблема тогда? Сделайте как уже говорили. Клиент "подключается" шлет серверу сообщение типа imOnline каждые 5 - 10 секунд, сервер получает записывает время этого сообщения. А другие клиенты так же опрашивают сервер каждые 5 секунд и получают этот список и время под которым было зафиксировано последнее сообщение от каждого другого клиента. Если с того времени прошло более 10 секунд, просто вычеркивают этого клиента из своего онлайн списка
|
Часовой пояс GMT +4, время: 15:41. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|