Uma solução para contar usuários online atuais
Ao criar um site de comunicação on-line, há um problema que me deixa muito perturbado, o que é sobre estatísticas em tempo real dos usuários on-line. Requisitos do cliente: conte o número atual de usuários on -line, número de turistas, número de membros e lista de usuários on -line, incluindo turistas, membros e administradores (se forem turistas, o ID dos turistas será gerado automaticamente e, se forem membros, o nome do membro será exibido). Como requer tempo real, primeiro vou passar a idéia de resolvê-lo com o Global.asa.
A chave para o problema é como dizer ao usuário e como executar um arquivo ou uma função quando o usuário sair.
Após a discussão com alguns amigos on -line, esse problema foi finalmente resolvido.
A solução é: escreva uma página geral. A chamada página geral significa que cada página no aplicativo contém esta página, por exemplo: header.asp. Nesta página, escreva um pedaço de código usando XMLHTTP. O objetivo deste código é enviar uma solicitação ao servidor a cada 10 segundos ou 20 segundos. O objetivo é atualizar o tempo on-line do usuário atual e excluir usuários cujo tempo on-line excedeu um certo período de tempo, para que o usuário on-line registra no banco de dados mantenha um certo tempo real em tempo real.
Os principais métodos de implementação são:
Crie um novo banco de dados, os nomes de campo são: id (caractere), nome (caractere), usuário (número) tt (data), admin (código de permissão, usuário de 0 ordinária, 1-admin)
Nome da tabela: online
cabeçalho.asp ↓
=======================================================================================
<%
......
ifSession ("s_in") <> 1endSession ("s_name") = "" Se o usuário estiver fazendo login pela primeira vez
Rs.open "Select*fromLine", Conn, 3,3
Rs.Addnew
rs ("id") = session.SessionId
rs ("nome") = "Guest" & session.SessionId
rs ("usuário") = 0'0 significa que o usuário não está conectado e é a identidade do turista
rs ("tt") = agora
rs.update
rs.close
sessão ("s_in") = 1'Set as informações do usuário foram armazenadas no banco de dados, indicando que ele estava online
endif
ifSession ("s_name") <>
Rs.open "Select*fromLinewhed = '" & session.SessionId & "'", Conn, 3,3
rs ("nome") = sessão ("s_name")
rs ("admin") = sessão ("s_admin") 'Atualize o nome do usuário para o nome do membro
rs ("usuário") = 1 'significa que o usuário fez login e é um membro
rs ("tt") = agora é o tempo atual do sistema para o tempo de login do usuário
rs.update
rs.close
endif
......
%>
......
<head>
......
<ScriptLanguage = JavaScript>
functionTest ()
{
varxmlHttp = newActivexObject ("msxml2.xmlHttp");
xmlhttp.open ("post", "Anonline.asp", false); // Envie a solicitação de atualização para a primeira linha.asp.asp
xmlhttp.setRequestHeader ("conteúdo-tipo", "Application/X-Www-Form-Urlencoded");
xmlhttp.send ();
}
setInterval ("test ();", 10); // Envie uma solicitação de atualização em 10 segundos
</script>
......