Как определить, если кто-то вошел в систему и просматривает ваши веб-страницы - PullRequest
2 голосов
/ 13 мая 2011

У меня есть личное веб-приложение с требованиями для входа в систему.

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

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

Не ищите код здесь (сам по себе), просто ищите логику, используемую для этого.

Спасибо.

Ответы [ 5 ]

3 голосов
/ 13 мая 2011

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

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

1 голос
/ 13 мая 2011

Какую гранулярность вы ищете? Вы хотите показывать только тех пользователей, которые недавно вошли на сайт, или вы хотите отображать пользователей, которые просматривают (или недавно просматривали) определенное сообщение на форуме?

Если первое, то это зависит от того, как в настоящее время выглядит ваша структура входа в систему и аутентификации, но в основном это будет запрос сеансов с истекшим сроком действия.

Если последнее, вам нужно будет хранить то, что пользователи просматривали определенную страницу, когда. Вы можете использовать таблицу соединений, такую ​​как Users_Viewed_Pages, с отметкой времени. Затем для конкретной страницы запросите таблицу по Page_ID и отобразите пользователей, которые недавно загрузили эту страницу.

1 голос
/ 13 мая 2011

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

0 голосов
/ 13 мая 2011

Реализуйте свой собственный обработчик сеансов и сохраняйте активные сеансы в базе данных. Это также упрощает завершение активного сеанса пользователя и / или ведение журнала всех сеансов.

0 голосов
/ 13 мая 2011

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

...