Anos de competição entre diferentes navegadores resultaram na criação de muitas ferramentas para ajudar os desenvolvedores a realizar tarefas que antes eram difíceis de realizar. Agora, com apenas um pequeno script, você pode criar um aplicativo que vincule dados a um controle de usuário para que ele se comunique com o servidor por meio de um controle do tipo proxy incorporado.
No Internet Explorer (IE), incluem ilhas de dados XML, que são usadas para vincular dados a elementos de formulário, e objetos XMLHTTP, que são usados para criar conexões com o servidor na página atual sem navegar para outras páginas. . Usarei esses dois recursos fáceis de usar para criar um aplicativo de bate-papo simples, que consiste em algumas páginas ASP que atuam como UI, JavaScript para implementar funções de cliente e T-SQL para completar a lógica de negócios no SQL Server 2000.
Cliente e servidor se comunicam usando XML. Depois que o servidor Web recebe um pedaço de mensagem, o pedaço de mensagem é anexado a uma tabela MESSAGES com carimbo de data/hora no SQL Server. Com base em um intervalo de tempo predefinido, o cliente solicitará informações atualizadas do servidor, incluindo uma lista de mensagens e uma lista de usuários online anexadas ao banco de dados desde a última vez que solicitou informações do servidor.
O cliente enviará um <action/> ao servidor por meio de um objeto XMLHTTP. A ação é uma solicitação para atualizar a mensagem e a lista de usuários ou para enviar uma nova mensagem. Essas ações são armazenadas em uma tabela chamada ACTIONS. O servidor responderá à solicitação correspondente ou aceitará uma nova mensagem e a anexará à tabela MESSAGES.
Quando o servidor responde a uma solicitação de mensagem, ele retorna uma lista de todas as novas mensagens desde a última solicitação. Para rastrear a atividade do cliente, utilizo uma tabela ACTIVITY que contém a data e hora da atividade do cliente. A identidade do cliente é armazenada na tabela HANDLES, que possui um nome intuitivo.
A seguir está o script para criar uma tabela:
CREATE TABLE [dbo].[ACTIONS] (
[action_id] [int] IDENTIDADE (1, 1) NÃO NULO,
[nome_ação] [varchar] (50) NULL ,
[action_descr] [varchar] (255) NULO
) EM [PRIMÁRIO]
VÁ
CRIAR TABELA [dbo].[ATIVIDADE] (
[handle_id] [int] NULO,
[action_time] [datetime] NULO
) EM [PRIMÁRIO]
VÁ
CRIAR TABELA [dbo].[HANDLES] (
[handle_id] [int] IDENTIDADE (1, 1) NÃO NULO,
[identificador] [nvarchar] (63) NULO
) EM [PRIMÁRIO]
VÁ
CRIAR TABELA [dbo].[MESSAGENS] (
[msg_id] [int] IDENTIDADE (1, 1) NÃO NULO,
[mensagem] [nvarchar] (255) NULL ,
[action_id] [int] NULO,
[action_time] [datetime] NÃO NULO
) ON [PRIMARY]
Todas as operações de dados serão concluídas por meio de procedimentos armazenados. Toda a interface de dados será feita através de um COM genérico que atua como uma ligação entre o servidor Web e o SQL Server 2000. O objeto COM expõe um método RunSPReturnStream que desejo usar. O primeiro parâmetro deste método é o nome do procedimento armazenado e o segundo parâmetro é uma matriz de matrizes de parâmetros. A matriz de parâmetros é uma matriz simples com o seguinte formato: (paraName, paramType, paramLength, paramValue). paramType é uma das enumerações de tipo de parâmetro ADO. Uma página ASP é responsável por aceitar ações e criar respostas, vou chamá-la de HandleAction.asp.
A página de chat conterá uma área para exibir mensagens de chat; esta área é uma TABELA contida em uma DIV. Esta TABLE está vinculada a uma ilha de dados XML xmlMessages. Outra área exibe o usuário atual; esta área também é uma TABELA contida em um DIV, que está vinculada a uma ilha de dados XML xmlUsers. Existe também uma TEXTAREA para os usuários inserirem mensagens.
-------------------------------------------------- ----------------------------------
O autor deste artigo: Phillip Perkins é contratado da Ajilon Consulting. Sua experiência abrange desde controle de máquinas e cliente/servidor até aplicações de intranet.