Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   Как узнать что пользователь покинул приложение? (http://www.flasher.ru/forum/showthread.php?t=144683)

RustAS 18.09.2010 14:50

Как узнать что пользователь покинул приложение?
 
Всем привет. интересует такой вопрос:
Как узнать что пользователь покинул приложение используя php. укажите в какую сторону рыть..

membrilius 18.09.2010 15:14

мгновенно... мне ничего кроме Socket в голову не приходит... но на простом хосте отключена поддержка сокетов для пхп да и "навечно" скрипт Вы не запустите.

Добавлено через 6 минут
выход может быть такой:
если на хосте есть CRON, и он нормальный, т.е. разрешено ставить расписание на запуск скрипта раз в минуту. То делайте тайм-аут. Флешка раз в 30 сек должна говорить серверу что она ещё тут. А сервер раз в минуту проверяет это.

RustAS 18.09.2010 15:26

интересует вариант без сокет сервера..
т.е. вместо использования крона я могу и сам переодически говорить серверу что флешка ещё работает и если флешка не отметилась то пользователь закрыл приложение.. я правильно понял?

membrilius 18.09.2010 15:43

без сокетов это видимо только, либо сервер проверяет тайу-аут, или если без крона, то сам пользователь может проверять других участников. Т.е. сам говорит что я ещё тут, обновляя время, и сканирует других участников в таблице

если база мускул, то как-то так можно:
Код:

"SELECT *FROM timeout WHERE last_time < NOW() - INTERVAL 1 MINUTE" // все кто больше минуты не обновлял время
Но такой подход, будет нагружать сервер.

RustAS 18.09.2010 15:57

а допустим мне надо для каждого клиента создавать сессию и в нее записывать последнее положение объекта при закрытии приложения, чтоб при запуске приложения объект появлялся в том же месте где был в последний раз..
вот собственно для этого мне и нужно узнать когда приложение закрылось..
может есть какие мысли по этому поводу?

membrilius 18.09.2010 16:39

при каждом передвижение объекта надо сохранять его координаты на сервере.

положил шарик на полочку - передал данные на сервер.
шагнул человечком в сектор "B12" -передал на сервер.
повернул объект по часовой стрелке в положение 2 - передал на сервер.

данные передаются сразу, а не при завершении работы приложения.

Dimitry_II 19.09.2010 00:31

long-polling с периодичным ответом сервера в случае неактивности - весьма жизнеспособное решение, да и базируется на обычных http-запросах.

mikhailk 19.09.2010 12:01

Автор, кстати, не уточнил, что именно ему нужно.

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

Если нужно, чтобы сервер предпринимал какие-либо действия, сразу после того, как пользователь вышел из приложения, то, пожалуй, на PHP тут эффективного решения нет.


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

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