Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Inside

Usuários on line

Recommended Posts

Caros amigos,

 

preciso de uma grande ajuda.

 

 

Preciso criar um sistema parecido com o Facebook na parte dos usuários online a direita da tela que seria para suporte de clientes.

 

Estou tendo dificuldade com a questão do usuário permanecer on line.

 

Entendo que eu poderia mudar o status do usuário no DB de 0 para 1 por exemplo onde 1 seria online e mostrar na tela todos os usuários com status 1.

 

Se ele clicar em sair muda para 0 (offline) Esta seria maneira simples, mas a questão é: E quando ele apenas fechar o navegador e não clicar em sair ou apenas fechar a aba.

 

Como faço para o sistema identificar que ele saiu? Já pensei várias formas mas não encontrei solução.

 

 

Uma das coisas que pensei foi criar uma seção no login, gravar essa seção no DB e ficar comparando a seção com o DB através de reload (sem o tick).

 

Nesta tabela das seções criadas nos logins, junto irá o ID do usuário, assim posso pegar somente os IDs que esta nesta tabela de Seções assim saberei quem está online.

 

Mas a questão é: Se ele sair e não tiver mais ninguém no atendimento como fazer para o sistema fazer o reload e apagar a seção que não foi confirmada? Uma vez que ele saiu e não há mais ninguém online?

 

Qual seria a melhor forma de fazer isso? Não sou um grande programador mas foi isso que pensei que poderia dar certo.

 

 

Obrigado pela atenção de todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Me perdoe a incompetência mas como eu utilizaria a função "onunload"?

 

É possível colocar uma função ASP dentro dela?

 

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode limitar um tempo de inatividade do user e depois disso considerá-lo como off-line, é o padrão que sistema de help-desk usam.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro xanburzum

 

 

Eu entendo que a função "session" tem um tempo e que ela expira porém meu problema é como fazer o sistema identificar quando ele for o último a sair.

 

 

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode, criar uma nova sessão que salve uma data e hora, comprovar em nossa camada de segurança o tempo transcorrido entre a sessão salva e a hora atual, para fazê-lo, teremos que realizar um cálculo muito simples:

 

tempo transcorrido = (hora atual - data salva)

 

E logo, restará saber se o tempo transcorrido é maior, menor ou igual que o tempo de expiração da sessão (representado como "x"):

 

se (tempo transcorrido >= x), atuo em conseqüência ao achado

 

e atualizar a sessão ou destruí-la segundo corresponda,

 

fazendo ele executar um code deste tipo:

 

response.expires = 0
response.expiresabsolute = Now() -1
response.addHeader "pragma","no-cache"
response.addHeader "cache-control","private"
Response.CacheControl = "no-cache"
Session.Contents.RemoveAll()
Session.Abandon

 

você também pode colocar isso antes do session_start()

 

session_cache_expire(60);

 

Detalhe tem que tomar cuidado com o foco do site, ou seja, não será o mesmo tempo de inatividade igual para um site de estudo, provas (avaliações online) entendeu.Mas note que o uso de sessões é para garantir entre outras coisas que após determinado tempo de inatividade o conteudo expire, garantindo assim a segurança dos dados e da transação envolvida entre outros usos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.