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), essas coisas incluem ilhas de dados XML e objetos XMLHTTP. As ilhas de dados XML são usadas para vincular dados a elementos de formulário. Os objetos XMLHTTP são usados para criar conexões com o servidor na página atual sem navegar para outras páginas. e chamadas assíncronas. 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 objeto XMLHTTP ao servidor. 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 a tabela:
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 um 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.