Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 06.08.2013, 22:16
scnippers вне форума Посмотреть профиль Отправить личное сообщение для scnippers Найти все сообщения от scnippers
  № 1  
Ответить с цитированием
scnippers
 
Аватар для scnippers

Регистрация: Jul 2013
Сообщений: 21
По умолчанию Как отследить дисконнект пользователя?

Привет всем! У меня есть чат написанный на флеш который работает по принципу xml+refresh. Каждые 3 секунды по таймеру флеш получает список пользователей онлайн. Когда юзер жмет кнопку выход выполняется функция которая удаляет его из списка онлайн. Все бы ни чего, но проблема в том что когда тот же юзер закрывает браузер,вкладку он не удаляется из списка онлайн. Как отследить закрытие браузера,вкладки или обрыва коннекта с сервером я не знаю. Помогите мне уже всю голову сломал как это сделать.

P.S Может кто нибудь подкинет примерчик как это сделать с помощью socket?

Старый 06.08.2013, 22:39
Inet_PC вне форума Посмотреть профиль Отправить личное сообщение для Inet_PC Посетить домашнюю страницу Inet_PC Найти все сообщения от Inet_PC
  № 2  
Ответить с цитированием
Inet_PC
 
Аватар для Inet_PC

Регистрация: Feb 2009
Адрес: Гы...поди, найди!
Сообщений: 853
Записей в блоге: 1
Ну если не было n секунд refresh-а, то пользователь отключился. Как то так.
__________________
http://www.chessmax.ru

Старый 06.08.2013, 22:47
scnippers вне форума Посмотреть профиль Отправить личное сообщение для scnippers Найти все сообщения от scnippers
  № 3  
Ответить с цитированием
scnippers
 
Аватар для scnippers

Регистрация: Jul 2013
Сообщений: 21
интересно как я это на сервере отслежу?
подкиньте примерчик..

Старый 06.08.2013, 22:48
Inet_PC вне форума Посмотреть профиль Отправить личное сообщение для Inet_PC Посетить домашнюю страницу Inet_PC Найти все сообщения от Inet_PC
  № 4  
Ответить с цитированием
Inet_PC
 
Аватар для Inet_PC

Регистрация: Feb 2009
Адрес: Гы...поди, найди!
Сообщений: 853
Записей в блоге: 1
Путем сохранения времени последнего запроса refresh-а?
__________________
http://www.chessmax.ru

Старый 06.08.2013, 23:01
KumoKairo вне форума Посмотреть профиль Отправить личное сообщение для KumoKairo Найти все сообщения от KumoKairo
  № 5  
Ответить с цитированием
KumoKairo
 
Аватар для KumoKairo

Регистрация: Jan 2013
Сообщений: 550
Записей в блоге: 1
Мы просто пинговали каждые 5/10/15 секунд тестовым сообщением, на которое клиен должен был ответить. Если не отвечал в заданный промежуток времени - выкидывали из списка подключенных.

Старый 07.08.2013, 07:31
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 6  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Как отследить закрытие браузера,вкладки или обрыва коннекта с сервером я не знаю. Помогите мне уже всю голову сломал как это сделать.
Судя по вашему же описанию, постоянного коннекта с сервером там и нет, и обрываться нечему.
Как пользователь вообще попадает в список онлайн? И что из себя представляет этот список, текстовый файл, база данных или что?
И на чем сервер написан?

Старый 07.08.2013, 09:02
bifidokk вне форума Посмотреть профиль Отправить личное сообщение для bifidokk Найти все сообщения от bifidokk
  № 7  
Ответить с цитированием
bifidokk
 
Аватар для bifidokk

Регистрация: Jan 2011
Сообщений: 200
Присоединюсь к caseyryan. Вы же как-то авторизуете юзера, чтобы он попал в список онлайн? Заводите ему какую-то сессию? Если да, то выкидываем из листа по окончанию сессии, если нет, то придется запоминать время последнего refresh'a и выкидывать по нему.

Старый 07.08.2013, 11:43
namespaces вне форума Посмотреть профиль Отправить личное сообщение для namespaces Найти все сообщения от namespaces
  № 8  
Ответить с цитированием
namespaces
 
Аватар для namespaces

Регистрация: Jan 2013
Сообщений: 126
и я присоединяюсь к вам)
В конце как сборщик мусора пройтись по списку и пинговать каждую минуту, чтоб удостовериться в полном отключении юзера. В любых социалках при закрытии вкладки или бразуера только так делают. Если не была нажата кнопка Выход, то есть не было команды Я вышел, значит надо отслеживать со стороны сервера.

Старый 07.08.2013, 12:40
scnippers вне форума Посмотреть профиль Отправить личное сообщение для scnippers Найти все сообщения от scnippers
  № 9  
Ответить с цитированием
scnippers
 
Аватар для scnippers

Регистрация: Jul 2013
Сообщений: 21
Цитата:
Сообщение от caseyryan Посмотреть сообщение
Судя по вашему же описанию, постоянного коннекта с сервером там и нет, и обрываться нечему.
Как пользователь вообще попадает в список онлайн? И что из себя представляет этот список, текстовый файл, база данных или что?
И на чем сервер написан?
Естественно постаянного коннекта нет. Пользователь попадает в список онлайн когда нажимает кнопку зайти в чат. Список находится в обычном текстовом файле. Сервер PHP. Что бы делать постоянный коннкет нужен соответственно сокет в котором я ни черта не разбираюсь

Старый 07.08.2013, 12:44
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 10  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Ну в чем проблема тогда? Сделайте как уже говорили. Клиент "подключается" шлет серверу сообщение типа imOnline каждые 5 - 10 секунд, сервер получает записывает время этого сообщения. А другие клиенты так же опрашивают сервер каждые 5 секунд и получают этот список и время под которым было зафиксировано последнее сообщение от каждого другого клиента. Если с того времени прошло более 10 секунд, просто вычеркивают этого клиента из своего онлайн списка

Создать новую тему Ответ Часовой пояс GMT +4, время: 15:41.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 15:41.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.