Решение для подсчета текущих онлайн -пользователей
При создании веб-сайта онлайн-коммуникации есть проблема, которая заставляет меня чувствовать себя очень обеспокоенным, что касается статистики онлайн-пользователей в реальном времени. Требования клиентов: подсчитайте текущее количество онлайн -пользователей, количество туристов, количество участников и список онлайн -пользователей, включая туристов, участников и администраторов (если они являются туристами, идентификатор туристов будет автоматически сгенерирован, и если они являются участниками, будет отображаться имя участника). Поскольку это требует в режиме реального времени, сначала я передам идею решения его с помощью Global.asa.
Ключом к проблеме является то, как сказать, что пользователь ушел, и как выполнить файл или функцию, когда пользователь уходит.
После обсуждения с друзьями в Интернете эта проблема была окончательно решена.
Решение: напишите общую страницу. Так называемая общая страница означает, что каждая страница в приложении содержит эту страницу, например: header.asp. На этой странице напишите кусок кода, используя XMLHTTP. Цель этого куска кода - отправлять запрос на сервер каждые 10 секунд или 20 секунд. Цель состоит в том, чтобы обновить онлайн-время текущего пользователя и удалить пользователей, чье время онлайн превысило определенный период времени, чтобы онлайн-записи пользователей в базе данных поддерживали определенный в режиме реального времени в режиме реального времени.
Основные методы реализации:
Создайте новую базу данных, имена поля: id (символ), имя (символ), пользователь (номер) TT (дата), администратор (код разрешения, 0-ormarinal User, 1-Admin)
Название таблицы: онлайн
Header.asp ↓
====================================================================================
<%
......
ifsession ("s_in") <> 1andsession ("s_name") = "", тогда пользователь входит в систему в первый раз
Rs.open "select*fromline", conn, 3,3
Rs.addnew
rs ("id") = session.sessionid
rs ("name") = "Гость" & session.sessionId
rs ("user") = 0'0 означает, что пользователь не вошел в систему и является личности туриста
rs ("tt") = сейчас
Rs.Update
Rs.close
Session ("s_in") = 1'set Информация пользователя была сохранена в базе данных, что указывает на то, что она была онлайн
эндиф
ifsession ("s_name") <> "".
rs.open "select*fromlinewhere = '" & session.sessionId & "", Conn, 3,3
rs ("name") = session ("s_name")
rs ("admin") = session ("s_admin") 'Обновите имя пользователя на имя участника
rs ("user") = 1 'означает, что пользователь вошел в систему и является членом
rs ("tt") = сейчас. Создайте текущее системное время во время входа пользователя
Rs.Update
Rs.close
эндиф
......
%>
......
<голова>
......
<scriptlanguage = javascript>
functionTest ()
{
varxmlhttp = newAcatexObject ("msxml2.xmlhttp");
xmlhttp.open ("post", "sheneonline.asp", false); // Отправить запрос на обновление на oneyonline.asp
xmlhttp.setrequestheader ("content-type", "Application/xwww-form-urlencoded");
xmlhttp.send ();
}
setInterval ("test ();", 10); // Отправить запрос на обновление за 10 секунд
</script>
......