Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как определить находится ли пользователь в данный момент на сайте? (https://javascript.ru/forum/misc/5355-kak-opredelit-nakhoditsya-li-polzovatel-v-dannyjj-moment-na-sajjte.html)

micscr 08.10.2009 10:35

А такой алгоритм не катит?:
1) Заходит человек под именем
2) ему создается сессия
3) запоминаем в БД в таблицу X связку "имя->сессия"

4) заходит "наш" пользователь на сайт
5) по таблице X для всех имен проверяется наличие файла сессии
5.1) если имеется - > выводим что присутствует
5.2) если не имеется - > удаляем из X запись.

x-yuri 08.10.2009 10:37

ну можно посчитать количество файлов сессий *JOKINGLY*

x-yuri 08.10.2009 10:43

Цитата:

Сообщение от micscr
5) по таблице X для всех имен проверяется наличие файла сессии

время жизни сессии не смущает? Кроме того, ты уверен, что файлы сессий сразу удаляются?

micscr 08.10.2009 10:50

Цитата:

Сообщение от x-yuri (Сообщение 32120)
время жизни сессии не смущает? Кроме того, ты уверен, что файлы сессий сразу удаляются?

Так и человек за браузером может заснуть. Что же теперь его нет? Нет есть, только спит.:)
Необходимые издержки, кому надо точно - можно в таблицу X
добавить поле "время последнего захода" и фильтровать в пункте 5) еще по нему.

Riim 08.10.2009 11:43

Цитата:

Сообщение от Kolyaj
А причем здесь сессии?

Не знаю как в php, но в asp.net, во-первых, есть Application (сессия для всех, фактически удобная база данных в памяти компа), во-вторых, события Session_Start и Session_End. С помощью этого все необходимое реализуется в 2 строки кода.

Цитата:

Сообщение от x-yuri
время жизни сессии не смущает?

Надеюсь в php менять-то его можно?

micscr 08.10.2009 11:50

Цитата:

Сообщение от Riim (Сообщение 32129)
Надеюсь в php менять-то его можно?

Можно, но мало - тоже не хорошо

x-yuri 08.10.2009 12:00

в общем, для начала нужно определиться, что значит "пользователь находится на сайте"

PAMAC 11.10.2009 12:27

"пользователь находится на сайте" - значит что пользователь открыл браузер и "бродит" по моему сайту... а если пользователь закрыл браузер, либо закрыл вкладки моего сайта или нажал на сайте выход - значит пользователь не находится на сайте.

Gvozd 11.10.2009 14:22

сохранять в ответ на каждый запрос пользователя в базе время его запроса, и его SESSID к примеру
на запрос "кто на сайте" выводить тех пользователей, которые посылали запрос в течении последних T секунд
каждые Т секунд с клиента посылать запрос на сервер
При этом вы получите большую точность чем обычно, и повесившийся сервер.
поэтому на практие не стоит применять идею с регулярными запросами.
лучше стоит обойтись без них, а в качестве T выбрать среднее время просмотра страницы на своем сайте, к примеру

PAMAC 11.10.2009 15:05

спасибо


Часовой пояс GMT +3, время: 01:45.