#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)