PDA

Просмотр полной версии : onUnload


CrazyFlasher
26.04.2007, 13:35
Привет ув. флэшеры!
Я столкнулся вот с такой ситуацией:

Есть флэш+пхп чат, который ОК работает, кроме одной и, как мне кажется, ОЧЕНЬ большой проблемы. Т.к. большинство пользователей выходит из чата нажимая крестик браузера, а не "выход", большая часть ушедших висят в списке "онлайн" =)

Каким образом можно при закрытии окна передать из флэша методом sendAndLoad (и вообще можно ли) переменную в пхп файл? Есть ли что-то типа onUnload? И вообще как можно решить эту проблему? Любые способы приветствуются! =)

Спасибо заранее!

etc
26.04.2007, 13:44
Пинг надо ставить.

CrazyFlasher
26.04.2007, 13:48
Можно плиз немного подробнее?

etc
26.04.2007, 13:54
Опрашивать клиента с заданным промежутком времени, если он не ответил в течение N-го времени, то считать его умершим.

CrazyFlasher
26.04.2007, 13:56
хм...классная идея! буду реализовывать!
Может у кого ещё идеи будут? Чем больше хороших идей, тем лучше!

etc
26.04.2007, 13:58
Это не идея, это стандартная практика. В том же IRC такая применяется.

CrazyFlasher
26.04.2007, 13:59
Просто я до этого мало практиковал взаимодействие флэш клиента и пхп сервера...поэтому для меня это идея =)

CrazyFlasher
26.04.2007, 14:14
вот нашёл проблемку...идея ок, но есть "но":

Скажем браузер закрыт...проверка делается каждые 5 минут на активность. Получается вышедший пользователь будет висеть в списке ещё около 5 минут. Идеально было бы, если б он моментально вылетал. Чтобы серверному скрипту сразу сообщалось о его выходе.

Есть ли идеи по поводу решения этого?

etc
26.04.2007, 14:51
Вообще-то серверная часть по идее должна уметь опозновать разрыв сокетного соединения.

CrazyFlasher
26.04.2007, 15:00
ну а если соединение не сокетное, а по http протоколу?

etc
26.04.2007, 15:02
Тогда только пинг. Можно раз в минуту.

CrazyFlasher
26.04.2007, 15:06
в минуту наверное слишком часто...может пользователь просто сидит и читает что другие пишут, а ему раз и логаут =))

etc
26.04.2007, 15:07
Часто — это раз в три секунды.

~~~
26.04.2007, 15:14
Пхп - сессия. Разрываешь при закрытии браузера.
В нете куча документации:Сессии. Подробное описание работы и объяснение механизма. (http://www.phpfaq.ru/sessions)

CrazyFlasher
26.04.2007, 15:18
ок, спасибо почитаю