2010-06-06 2 views
1

Мне нужно показать количество посетителей онлайн, но есть проблема с выбором алгоритма для этого! Возможно, я должен создать таблицу в DB, где я буду хранить IP-адреса посетителей и время посещения! поэтому я могу показать количество ip-адресов, время которых = = NOW() - 10 минут, например ... («now() - 10 минут» - это просто показать логику, я знаю, что это не function :)Расчет количества посетителей в Интернете?

это goog способ пойти?

, пожалуйста, дайте мне представление.

Благодаря

ответ

3

This is good tutorial. Обратите внимание, что MySQL (я считаю, вы будете использовать) таблицу пользователей онлайн должны быть набраны как память.

+0

хороший учебник !! +1 – nico

1

Я не совсем уверен, как вы бы использовать AJAX для хранения данных ...

Я лично использую решение базы данных.

Я размещаю user_id, last_seen, IP и местонахождение на сайте (но это не обязательно, чтобы просто получить счет).

Когда пользователь запрашивает страницу, обновите столбец last_seen и удалите все записи с помощью NOW()-last_seen больше, чем x минут.

0

Отслеживание «посетителей» (в отличие от запросов необработанных страниц, которые веб-сервер должен отслеживать сам по себе) представляет собой сложное искусство.

Вы можете хранить IP-адреса, как описано, но как насчет посетителя, который использует прокси-сервер, который вращает свой IP так же часто, как и каждая загрузка страницы? Как насчет множества посетителей, использующих один и тот же прокси-сервер, который использует один и тот же IP-адрес для всех из них?

Моя рекомендация: не беспокойтесь о том, чтобы сделать это самостоятельно, и воспользуйтесь бесплатным сервисом Analytics. Он отслеживает посетителей, браузеры, источники трафика и почти все, что вы, возможно, захотите узнать о том, кто смотрит на ваш сайт.

+1

Я думаю, он просто хочет знать количество онлайн-пользователей, он не хочет использовать это для статистики сайта. – nico

-1

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

Если да, то я бы предложил написать сценарий CLI, который будет очистите старые записи и запустите их в cronjob. Таким образом, пользователь не заметил бы никакой задержки, поскольку parseime будет потрачен на CLI.

0

Да, алгоритм o.k. в целом, но с некоторыми исправлениями

Может быть, вы хотите сначала удалить все устаревшие записи, а затем просто посчитать остальные.
10 минут - это слишком много. 1-3 - среднее время, которое пользователь тратит на странице.
Проект AJAX забавный, но он не имеет ничего общего с хранилищем. Вам нужно больше обучения терминам клиент-серверного приложения. AJAX - это транспорт, а не хранение.

+0

когда я писал ajax, я имею в виду использование javascript, чтобы хранить данные в базе данных :) – Simon

Смежные вопросы