Artigo WebMobile 14 - Chat - Crie uma aplicação de chat com ASP.NET 2.0 – Parte 1

Neste artigo você verá como é fácil fazer um chat em ASP.NET sem usar nenhuma biblioteca adicional, apenas o .NET Framework. Para isso vamos usar um recurso chamado callback.

Clique aqui para ler esse artigo em PDF.

Clique aqui para ler todos os artigos desta edição

Chat

Crie uma aplicação de chat com ASP.NET 2.0 – Parte 1

 

 Neste artigo você verá como é fácil fazer um chat em ASP.NET sem usar nenhuma biblioteca adicional, apenas o .NET Framework. Para isso vamos usar um recurso chamado callback.

Callback é uma nova característica do ASP.NET 2.0 que permite receber valores do servidor Web sem renderizar novamente a página. São feitas requisições XMLHTTP ao servidor, ao invés de HTTP.

Para trabalhar com Callback é necessário conhecimento básico em JavaScript para chamar o servidor via XMLHTTP e depois receber o retorno do mesmo. Mas espera aí! Requisições XML assíncronas! Usando JavaScript! Isso é AJAX! Na verdade o AJAX é callback e não o contrário. Callback pode ser considerado uma forma artesanal de AJAX, ou até mesmo o esqueleto de todo componente AJAX.

Quando um postback normal é realizado, é executada uma requisição HTTP, que é processada de acordo com os métodos da interface IPostbackEventHandler. A classe System.Web.UI.Page implementa essa interface. O ciclo de vida da página ao executar um postback normal é mostrado na Figura 1.

 

Figura 1. Ciclo de vida da página ao executar um postback


Agora, quando executamos um callback, chamamos uma função JavaScript que envia uma requisição XMLHTTP assíncrona ao servidor Web e são processados os métodos da interface ICallbackEventHandler. O ciclo de vida da página ao executar um callback é mostrado na Figura 2.

 

Figura 2. Ciclo de vida da página ao executar um callback


O chat deste artigo será composto por uma página com uma lista de salas de bate-papo cadastradas no banco. O usuário escolhe a sala e então é aberto um popup com um frameset com três frames. Um frame lateral para listar os usuários, um frame inferior para enviar mensagens e um central com as mensagens dos usuários do chat. O chat também terá a opção de espiar, onde o usuário apenas visualiza as mensagens.


Criando o banco de dados

Vamos primeiro criar o banco de dados para cadastrar as salas de bate-papo e logar as mensagens do chat. Abra o SQL Server Management Studio ou utilize o IDE do Visual studio 2005 e crie um novo banco de dados chamado “DBCHAT”. Depois rode o script da Listagem 1.

 

Listagem 1. Script do banco

USE DBCHAT

 

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_PADDING ON

GO

CREATE TABLE [dbo].[CHAT](

  [COD_CHAT] [int] IDENTITY(1,1) NOT NULL,

  [NOM_CHAT] [varchar](100)  NULL,

  [DSC_CHAT] [text]  NULL,

  [MAX_USERS] [int] NULL, 

  [DAT_CHAT] [datetime] NULL

 CONSTRAINT [DF_CHAT_DAT_CHAT]  DEFAULT (getdate()),

 CONSTRAINT [PK_CHAT] PRIMARY KEY CLUSTERED

(

  [COD_CHAT] ASC

) ON [PRIMARY]

) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

 

GO

SET ANSI_PADDING OFF

 

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_PADDING ON

GO

CREATE TABLE [dbo].[CHAT_MENSAGEM](

  [COD_CHAT_MENSAGEM] [int] IDENTITY(1,1) NOT NULL,

  [DAT_MENSAGEM] [datetime] NULL,

  [NICK_AUTOR] [varchar](1000)  NULL,

  [DSC_MENSAGEM] [text]  NULL,

  [RESERVADO] [bit] NULL,

  [NICK_DESTINO_RESERVADO] [varchar](1000)  NULL,

  [COD_CHAT] [int] NOT NULL

) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

 

GO

SET ANSI_PADDING OFF

 

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

 

CREATE PROCEDURE [dbo].[SP_CHAT_SALAS_LISTAR]

 

AS

BEGIN

 

SET NOCOUNT ON;

 

SELECT [COD_CHAT],[NOM_CHAT],[DSC_CHAT],[MAX_USERS],

 [DAT_CHAT]

  FROM [dbo].[CHAT]

  " [...] continue lendo...

Artigos relacionados