|
Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » опция - кто и сколько народу on-line : как лучше сделать? |
|
опция - кто и сколько народу on-line : как лучше сделать?
|
just mar Сообщения: 3904 |
subj
имеем mysql и форум, код которого написан поверх несколько измененных классов phplib. В результате имеем таблицу, куда записываются сессии (безотносительно к юзеру) и время их старта, систему аутентификации (в случае наличия куков срабатывает при каждом обращении к любой странице), таблицу юзеров и куки, в которых хранится username, пароль, зашифрованный в md5 и время. Изначально (когда все это писалось) считалось, что кто и сколько кого online - не понадобится. Сейчас народ желает видеть присутствующих, ну и, соответственно, встал вопрос, как это лучше осуществить. Задача - как можно меньше напрягать сервер и каналы пользователей. Хотелось бы узнать, кто какими решениями пользуется (или о каких знает), их плюсы и минусы. То, что мне cейчас с ходу приходит в голову: - вариант раз: с сессиями записывать и id пользователя, а при показе первой страницы делать запрос с выборкой всех id из сессий, которые не старше 15 (или скольки-то там) минут. - при обращении к каждой странице залогоненого юзера обновлять некую новую таблицу (id, time) и выборку делать как выше, но по ней, не трогая сессии. - сделать еще одни куки и работать с ними и новой таблицей. Ваше мнение? |
|
Отправлено: 22:09, 04-08-2005 |
Ветеран Сообщения: 878
|
Профиль | Сайт | Отправить PM | Цитировать Цитата:
|
|
Отправлено: 22:31, 04-08-2005 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
![]() Ветеран Сообщения: 640
|
Профиль | Сайт | Отправить PM | Цитировать такая же задача предстоит,
я вот обдумываю применение тут технологии ActiveXObject("Microsoft.XMLHTTP"), при событии onunload преимущество в том что па не перегружается и соответственно трафик экономится. ну а для тех кто просто конектом оборвались можно использовать обновление таблицы в бд при входе пользователя, но на самом деле этот метод тоже както кажется устаревшим, надо еще подумать. какие у вас варианты? |
------- Отправлено: 00:09, 05-08-2005 | #3 |
just mar Сообщения: 3904
|
Профиль | Отправить PM | Цитировать E-mail
я сама и сидя под виндами ActiveX не разрешаю (чего и другим желаю ![]() Xcode штука в том, что у меня сейчас сессия открывается на все время работы броузера и потом не обновляется. Вот я и думаю, "сессионную" часть приложения ломать, или новый довесок сделать. В любом случае получается частое (при каждом обращении к новой странице) обновление одной и той же таблицы каждым пользователем. Как при этом себя mysql может повести? (Форум на хостинге, так что тюнинг мне не доступен, можно, правда запускать скрипты по крону) |
Отправлено: 00:51, 05-08-2005 | #4 |
just mar Сообщения: 3904
|
Профиль | Отправить PM | Цитировать что-то я туплю после отпуска :/ - работы с базой на ввод (по кпайней мере в моем случае) не больше, чем при обычной работе работе с сессиями =]
Но все равно интересны и другие способы |
|
Отправлено: 03:08, 05-08-2005 | #5 |
![]() Ветеран Сообщения: 1864
|
Профиль | Отправить PM | Цитировать Я бы вёл для этого отдельную таблицу, всё что больше 15 минут стераем. + Такого решения: старая система не затронута и ничего не надо менять.
А по хорошему, наверно надо добавить к сессиям и id юзера, ведь сессия для них открывается. Тогда из такой таблицы можно вытаскивать и тех, кто сейчас онлайн. |
------- Отправлено: 03:10, 05-08-2005 | #6 |
Ветеран Сообщения: 878
|
Профиль | Сайт | Отправить PM | Цитировать Цитата:
на первой странице на которую зашел юзер, создаем сессию и присваиваем одной из переменных PID, а на каждой слудующей странице сверяем PID с содержимым БД.. Цитата:
|
||
Отправлено: 09:56, 05-08-2005 | #7 |
just mar Сообщения: 3904
|
Профиль | Отправить PM | Цитировать Xcode
да нет, все проще: поскольку речь идет о форуме, то негласная авторизация через куки (и заодно уточнения поля даты и теперь еще id юзера для каждой сессии) происходит при каждом обращении к приложению. (ну, а у неавторизованных ставится id гостя). При заходе на первую страницу отрабатывает запрос, показывающий - число активных за последние 15 минут экаунтов, в том числе - число гостей, число негостей, ники (со ссылками на профили) негостей. Запрос обращается к таблицам сессий и полльзователей. Из первой отсекается время и берется id пользователя, из второй - username. Связь между таблицами через id пользователя. Можно еще из второй таблицы брать права и ники админов выделять цветом ![]() ![]() |
Отправлено: 18:04, 05-08-2005 | #8 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Сделать комп мощнее - как лучше? | 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 |
|