PDA

Просмотр полной версии : Отслеживание разрыва соединения на сервере


Saulot
16.09.2008, 18:38
Есть флекс приложение, работающее с ПХП и Мускулом, которому необходимо определять работает ли с ним в данный момент определенный юзер.
Активность юзера при входе легко записывается в базу, но если пользователь закрывает браузер необходимо на сервере это отследить и изменить его статус. JavaScript событие onUnload(onBeforeUnload) не всегда срабатывает(например в случае отключения света).
Подозреваю что это нужно реализовывать при помощи сокетов, но не знаю как это реализовать в моей ситуации:(

Division
16.09.2008, 19:05
А нельзя менять статус если юзер определённое время был не активен? То есть не общался с сервером.

Saulot
16.09.2008, 19:11
Юзеры, к сожалению, имеют привычку ходить на перекур.:) И курить могут долго, так что по времени не получиться. Их в таком случае отключать никак нельзя. С другой стороны юзер может просто перелогиниться, а ему запретит вход.

fishbounce
16.09.2008, 19:50
Ну вообще-то активность юзера по отношению к серверу означает, что он что-то постоянно шлет-спрашивает у сервера. Забирает какие-либо обновленные данные с него и т.п. Если этого давно не происходило, значит, что-то не так. Если такого частого общения между клиентом и сервером нет, можно по таймеру слать из клиента на сервер просто событие активности. Таким образом сервер будет знать, что клиент еще тут. Если человек уходит покурить, события шлются все равно. Правда, пока компьютер не уйдет в состояние сна. Для этой ситуации вам по-любому придется продумать механизм ре-логина автоматического или ручного (пользователем)