Desenvolvimento - Visual Studio

Contando usuário em tempo real

Caro(a) Leitor(a), hoje vou falar como criar na sua aplicação um contador tempo real dos usuários que estão acessando; isto é; dá para saber quantas pessoas estão acessando, a qualquer momento, o seu site ou sistema online.

por Mauricio Junior



Existem várias maneiras de fazer isso, hoje o Google Analytics tem uma opção para saber quantos usuários estão online. Existe uma outra maneira que é o desenvolvimento na aplicação usando o Global.asax.cs.

No Google Analytics, você precisa colocar algumas linhas de código javascript no site ou sistema, depois basta acompanhar a quantidade de usuário no menu Tempo Real que ainda está na versão beta. Figura 1.

Google Analytics

Figura 1. Google Analytics.

No próprio site do Google Analytics existe a opção de criar o arquivo de javascript. Você pode também confiar diretamente no seu aplicativo somando automaticamente. Para isso, o primeiro passo é criar o arquivo Global.asax.cs.

O primeiro passo foi criar o arquivo Global.asax. Figura 2.

Botão direito em cima do projeto

Figura 2. Botão direito em cima do projeto.

Cliquei com o botão direito em cima do projeto, escolhi o submenu Add e em seguida o New Item... A próxima tela precisei escolher o tipo do arquivo. Figura 3.

Escolha do tipo do arquivo

Figura 3. Escolha do tipo do arquivo.

Dentre os vários tipos, escolhi o Global Application Class, deixei o mesmo nome e cliquei no botão Add. Apareceu no projeto o arquivo com vários métodos criados. Listagem 1.

Listagem 1: Métodos criados automaticamente.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.SessionState;
namespace WebApplication3
{
public class Global : System.Web.HttpApplication
{
protected void Application_Start(object sender, EventArgs e)
{
}
protected void Session_Start(object sender, EventArgs e)
{
}
protected void Application_BeginRequest(object sender, EventArgs e)
{
}
protected void Application_AuthenticateRequest(object sender, EventArgs e)
{
}
protected void Application_Error(object sender, EventArgs e)
{
}
protected void Session_End(object sender, EventArgs e)
{
}
protected void Application_End(object sender, EventArgs e)
{
}
}
}

Para gerar o contador automático, vou utilizar pelo menos três destes métodos já criados pelo Framework e Visual Studio. O primeiro passo foi criar uma variável chamada contador de acessos dentro do método Application_Start.

É necessário criar dentro do Application_Start, isso porque quando a aplicação for iniciada a primeira vez, a variável começa com o valor zero. Você pode colocar o nome que quiser. Listagem 2.

Listagem 2: Application_Start

protected void Application_Start(object sender, EventArgs e)
{
Application["ContadorAcessos"] = 0;
}

É necessário usar ainda dois métodos da classe Global para somar e diminuir o valor da variável. A cada acesso, o sistema vai somando os valores e adicionando na variável. Para somar, usar o método Session_Start. Listagem 3.

Listagem 3: Somando valores e atribuindo a variável.

protected void Session_Start(object sender, EventArgs e)
{
Application["ContadorAcessos"] = (int)(Application["ContadorAcessos"]) + 1;
}

Quando um usuário sai do site, é necessário diminuir este valor de forma automática e simples. O método utilizado é o Session_End, ou seja, quando a sessão do usuário for finalizada. Listagem 4.

Listagem 4: Diminuindo valores.

protected void Session_End(Object sender, EventArgs e)
{
Application["ContadorAcessos"] = (int)(Application["ContadorAcessos"]) - 1;
}

Depois de somar e diminuir os valores, basta usar a variável dentro de qualquer parte do código, aspx, vb, c# e outros. Basta usar Application[“ContadorAcessos”].ToString(). A fim de deixar mais organizado o código para entendimento, segue todo o código construído. Listagem 5.

Listagem 5. Todo o código da classe.
protected void Session_Start(object sender, EventArgs e)
{
Application["ContadorAcessos"] = (int)(Application["ContadorAcessos"]) + 1;
}
protected void Session_End(Object sender, EventArgs e)
{
Application["ContadorAcessos"] = (int)(Application["ContadorAcessos"]) - 1;
}
protected void Application_Start(object sender, EventArgs e)
{
Application["ContadorAcessos"] = 0;
}

Bom, espero que tenha gostado

Conheça os cursos de .Net online da Devmedia.

Mauricio Junior

Mauricio Junior - Formado pela Faculdade Anhanguera, Especialista pela FGV (Fundação Getúlio Vargas), Pós-Graduação em Docência Superior e cursando Mestrado na UNB Engenharia Elétrica; . Tenho 29 anos e possuo sete livros publicados pela editora Ciência Moderna e sou editor do Linha de Código.
Sou Certificado Microsoft MCP, MCAD e MVP, faço parte da comunidade ASPNETI.COM, onde publico artigos, vídeos, ebooks e livros Publico artigos, vídeos e podcast em outras comunidades. Trabalho como Analista de Sistemas / Desenvolvedor na empresa ATP S/A.
Blog:
blog.mauriciojunior.org
Site pessoal: www.mauriciojunior.org