Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » опция - кто и сколько народу on-line : как лучше сделать?

Ответить
Настройки темы
опция - кто и сколько народу on-line : как лучше сделать?
mar mar вне форума

Аватара для mar

just mar


Moderator


Сообщения: 3904
Благодарности: 163

Профиль | Отправить PM | Цитировать


subj
имеем mysql и форум, код которого написан поверх несколько измененных классов phplib.
В результате имеем таблицу, куда записываются сессии (безотносительно к юзеру) и время их старта, систему аутентификации (в случае наличия куков срабатывает при каждом обращении к любой странице), таблицу юзеров и куки, в которых хранится username, пароль, зашифрованный в md5 и время. Изначально (когда все это писалось) считалось, что кто и сколько кого online - не понадобится. Сейчас народ желает видеть присутствующих, ну и, соответственно, встал вопрос, как это лучше осуществить. Задача - как можно меньше напрягать сервер и каналы пользователей. Хотелось бы узнать, кто какими решениями пользуется (или о каких знает), их плюсы и минусы.
То, что мне cейчас с ходу приходит в голову:
- вариант раз: с сессиями записывать и id пользователя, а при показе первой страницы делать запрос с выборкой всех id из сессий, которые не старше 15 (или скольки-то там) минут.
- при обращении к каждой странице залогоненого юзера обновлять некую новую таблицу (id, time) и выборку делать как выше, но по ней, не трогая сессии.
- сделать еще одни куки и работать с ними и новой таблицей.
Ваше мнение?

Отправлено: 22:09, 04-08-2005

 

Аватара для XCodeR

Ветеран


Сообщения: 878
Благодарности: 53

Профиль | Сайт | Отправить PM | Цитировать


Цитата:
с сессиями записывать и id пользователя, а при показе первой страницы делать запрос с выборкой всех id из сессий, которые не старше 15 (или скольки-то там) минут
это вроде бы является стандартным. я пользовался минусов не заметил, ну не считая конечно ежестраничного ежеюзерного обращения к БД и обновленияемени жизни пользователя. вобщем то подобная вещь реализована во всех форумах и особых проблем не видно.

Отправлено: 22:31, 04-08-2005 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Аватара для E-mail

Ветеран


Сообщения: 640
Благодарности: 2

Профиль | Сайт | Отправить PM | Цитировать


такая же задача предстоит,

я вот обдумываю применение тут технологии ActiveXObject("Microsoft.XMLHTTP"), при событии onunload

преимущество в том что па не перегружается и соответственно трафик экономится.

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

какие у вас варианты?

-------
Основы HTML | Конференции


Отправлено: 00:09, 05-08-2005 | #3

mar mar вне форума Автор темы

Аватара для mar

just mar


Moderator


Сообщения: 3904
Благодарности: 163

Профиль | Отправить PM | Цитировать


E-mail
я сама и сидя под виндами ActiveX не разрешаю (чего и другим желаю ). Поэтому и при Web-программировании его не использую.
Xcode
штука в том, что у меня сейчас сессия открывается на все время работы броузера и потом не обновляется. Вот я и думаю, "сессионную" часть приложения ломать, или новый довесок сделать. В любом случае получается частое (при каждом обращении к новой странице) обновление одной и той же таблицы каждым пользователем. Как при этом себя mysql может повести? (Форум на хостинге, так что тюнинг мне не доступен, можно, правда запускать скрипты по крону)

Отправлено: 00:51, 05-08-2005 | #4

mar mar вне форума Автор темы

Аватара для mar

just mar


Moderator


Сообщения: 3904
Благодарности: 163

Профиль | Отправить PM | Цитировать


что-то я туплю после отпуска :/ - работы с базой на ввод (по кпайней мере в моем случае) не больше, чем при обычной работе работе с сессиями =]
Но все равно интересны и другие способы

Отправлено: 03:08, 05-08-2005 | #5


Аватара для vadimiron

Ветеран


Сообщения: 1864
Благодарности: 120

Профиль | Отправить PM | Цитировать


Я бы вёл для этого отдельную таблицу, всё что больше 15 минут стераем. + Такого решения: старая система не затронута и ничего не надо менять.
А по хорошему, наверно надо добавить к сессиям и id юзера, ведь сессия для них открывается. Тогда из такой таблицы можно вытаскивать и тех, кто сейчас онлайн.

-------
Fortes fortuna adiuvat


Отправлено: 03:10, 05-08-2005 | #6


Аватара для XCodeR

Ветеран


Сообщения: 878
Благодарности: 53

Профиль | Сайт | Отправить PM | Цитировать


Цитата:
штука в том, что у меня сейчас сессия открывается на все время работы броузера и потом не обновляется.
а зачем её обновлять?(сессию).
на первой странице на которую зашел юзер, создаем сессию и присваиваем одной из переменных PID, а на каждой слудующей странице сверяем PID с содержимым БД..
Цитата:
А по хорошему, наверно надо добавить к сессиям и id юзера, ведь сессия для них открывается.

Отправлено: 09:56, 05-08-2005 | #7

mar mar вне форума Автор темы

Аватара для mar

just mar


Moderator


Сообщения: 3904
Благодарности: 163

Профиль | Отправить PM | Цитировать


Xcode
да нет, все проще:
поскольку речь идет о форуме, то негласная авторизация через куки (и заодно уточнения поля даты и теперь еще id юзера для каждой сессии) происходит при каждом обращении к приложению. (ну, а у неавторизованных ставится id гостя).
При заходе на первую страницу отрабатывает запрос, показывающий - число активных за последние 15 минут экаунтов, в том числе - число гостей, число негостей, ники (со ссылками на профили) негостей. Запрос обращается к таблицам сессий и полльзователей. Из первой отсекается время и берется id пользователя, из второй - username. Связь между таблицами через id пользователя.
Можно еще из второй таблицы брать права и ники админов выделять цветом (На том форуме, может быть, так и придется, потому что админы там реально консультируют народ, так что это может быть небезинтиересно )

Отправлено: 18:04, 05-08-2005 | #8



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » опция - кто и сколько народу on-line : как лучше сделать?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Сделать комп мощнее - как лучше? Konst2007to2008 Выбор отдельных компонентов компьютера и конфигурации в целом 2 22-10-2009 20:05
MySQL - Сколько лучше назначить индексов для таблицы? tolbol Программирование и базы данных 5 23-07-2008 10:01
Прочее - увеличение скорости интернета как сделать ?по лучше скорость re5pect Сетевые технологии 5 09-02-2008 01:55
Нужен совет как лучше сделать. CyberNet Автоматическая установка Windows 2000/XP/2003 7 12-09-2007 16:22
как лучше сделать переход PDC на новое железо? Guest Microsoft Windows NT/2000/2003 10 24-10-2002 10:05




 
Переход