Автоматический выход пользователей при закрытии их браузера в Flex3

#apache-flex #actionscript-3 #browser

#apache-flex #actionscript-3 #браузер

Вопрос:

Когда пользователь входит в систему и закрывает браузер без выхода из системы, я хочу автоматически вывести пользователя из системы во Flex3. Любая помощь приветствуется!

Комментарии:

1. Прежде чем мы сможем рассказать вам, как вывести кого-либо из системы, вы должны сообщить нам, как они входят в систему. Что значит войти в систему? Обычно это просто сеанс на стороне сервера; время ожидания которого истекает автоматически. Если вы делаете что-то, связанное с общими объектами; это была бы другая проблема. Если вы просто хотите выгрузить память без каких-либо загруженных данных; тогда закрытие браузера сделает это.

2. Привет @www.Flextras.com . Я использую PHP в качестве языка на стороне сервера и Flex в качестве интерфейса. В моем приложении есть разные уровни пользователей. В соответствии с онлайн-статусом пользователя QC назначает некоторую работу онлайн. Я просто хочу обновить статус пользователя онлайн / оффлайн, когда он автоматически закрывает браузер. Flex вызывает службу PHP, но не получает никакого ответа. База данных не обновляется. Не существует концепции совместного использования объектов.

3. кумар Павутури Под общими объектами; я имел в виду общие объекты Flash Player; который, по сути, является Flash-версией cookie. Мне кажется, что вы хотите запускать код по истечении времени ожидания сеанса на стороне сервера. Я полагаю, PHP каким-то образом поддерживает эту опцию, не делая ничего в браузере или в Flex.

Ответ №1:

Я думаю, что надежное решение находится на стороне сервера. Например, клиент пингует сервер каждый период времени (скажем, каждые полминуты), и если в течение минуты пинга не было, сервер выводит пользователя из системы.

Комментарии:

1. В дополнение к этому, я обычно использую строку идентификатора сеанса для вызовов php, которая затем обновляет временную метку в базе данных. ЕСЛИ временная метка превышает 15 минут, выйдите из системы. Я также добавляю 15-минутный выход из системы на клиенте (если пользователь ничего не сделал), чтобы заблокировать экран и не позволить «злоумышленникам» видеть информацию, которую они не должны были видеть.

Ответ №2:

Вы можете попробовать использовать событие window.onbeforeunload и вызвать что-то, подключенное через ExternalInterface, который затем выполняет выход из системы. Однако это может сработать, а может и не сработать. Однако он довольно быстро запускается в работу, поэтому его будет легко протестировать.

Комментарии:

1. 1, вероятно, следует использовать это вместе с решением @Constantiner в качестве резервной копии на случай, если время не сработает.

Ответ №3:

Я провел некоторый поиск в Интернете, и вы можете добиться этого, используя flex в сочетании с javascript. Взгляните на этот поток:

http://board.flashkit.com/board/showthread.php?t=748226

Я не могу гарантировать, что это сработает, поскольку я сам этого не пробовал.

Комментарии:

1. Привет @Michiel Standaert, спасибо за ответ. Здесь я не понимаю, где мне следует зарегистрироваться ExternalInterface.addCallback("myFlexFunction",cleanUp); . Не могли бы вы, пожалуйста, взглянуть на ссылку, которую вы дали, пожалуйста.

2. просто добавьте это в конструктор класса, из которого вы хотите его вызвать 🙂

3. Лучшее улучшение @Michiel Standaert но требуемая веб-служба вызывается, но перед получением события результата сеанс закрывается. Даже статус пользователя в сети не обновляется в базе данных. Есть идеи?

4. тогда я бы предложил использовать серверный язык для выхода пользователя из системы (например, php), они будут продолжать работать даже после закрытия браузера, поскольку они работают на самом сервере.

5. Я использую PHP в качестве языка на стороне сервера @Michiel Standaert, и я получаю неверные сведения о коде, так как не удается загрузить WSDL. Если они в данный момент подключены к Сети, пожалуйста, проверьте URI и / или формат WSDL (abcd.com/public/SecurityService.php?wsdl)