Minha primeira sala de bate -papo foi escrita no ASP 3.0. O programa é relativamente simples. Naquela época, para construir uma sala de bate -papo real, o applet java ou o controle ActiveX deve ser usado. As salas de gráficos baseadas em http enfrentaram as mesmas perguntas que minha primeira sala de bate -papo. Esses problemas incluem o fenômeno piscando da tela causado pela atualização da página. Mas esse problema foi resolvido pelo Ajax. O Ajax é uma combinação de chamadas JavaScript e XML assíncronas. Agora use algum código JavaScript no servidor para obter uma sala de bate -papo real. Este artigo não apresentará o Ajax e assume que você tem um certo entendimento do uso do Ajax e do ASP.NET. Basta apresentar como usar a tecnologia AJAX para criar uma sala de bate -papo básica.
Rotina
Esta é uma única sala de bate -papo de um múltiplo. Ele pode alcançar funções básicas de bate -papo e também suporta algumas linhas de comando, como: /admin limpo para limpar o histórico de bate -papo, /name [nome] para alterar o apelido do usuário. O programa ilustra esse programa para processar todas as informações de bate -papo e informações do usuário com uma classe chatedine.
Usuários de hashtable;
StringCollection Chat;
Declara uma instância global do ChatEngine em global.asax.cs, compartilhando todos os usuários na sala de bate -papo:
Public static uchat.chatngine.ichatngine mecan = new uchat.chatngine.chatengine ();
Há também uma função JavaScript Timer usada para sincronizar variáveis globais e informações de página.
Função Settimers ()
{{
timeId = window.setTimeout (updateAll (), atualização);
}
Cada usuário é identificado exclusivamente por um nome de usuário e um GUID.
Public void adduser (string id, usuário da string)
{{
// Verifique se o nome de usuário não existe Alreamy
if (! Userexists (usuário))
{{
// Adicione a lista de usuários aos usuários
users.add (id, usuário);
// exibe uma mensagem de notificação para todos os usuários
Chat.add (this.makeserverMessage (String.Format (String.Format (
Juntou -se, usuário, usuário))));
}
}
Programa em execução de interface
A página inicial mostra algumas informações básicas sobre a sessão atual, como o número do usuário, o tamanho do histórico de bate -papo. Os usuários devem fornecer um nome de usuário para entrar na sala de bate -papo. Clique no botão Login para inserir a função abaixo:
Login de void protegido (remetente de objeto, EventArgs e)
{{
String user = txtuserName.text;
if (! validatenick (usuário)) retornar;
if (global.engine.userexist (usuário))
{{
lblerRormsg.text = um usuário com este +
O nome Alream existe, tente novamente.;
Retornar;
}
Response.Redirect (Server.aspx? Ação = login & u = + usuário);
}
Após alguma verificação simples, o usuário é adicionado às listas de usuários por meio da função Adduser e, em seguida, digitando a página de bate -papo Chat.aspx.
<Script Type = Text/JavaScript>
SniffBrowSerType ();
// mostra carregamento .. tela
showloadscreen ();
// defina o JavaScript Timeer e
// Carrega a lista de usuários e as mensagens
settimers ();
setFocus ('MyText');
</script>
Quando o usuário digitar algumas informações e retornar, as seguintes funções serão chamadas:
<Tipo de entrada = Class de texto = MyText
id = myText onedown = CaptureReturn (evento)>
// Capture a tecla Enter na caixa de entrada e poste a mensagem
Funções capturereturn (evento)
{{
if (event.which || event.keycode)
{{
If ((event.which == 13) || (event.keycode == 13))
{{
PostText ();
Retornar falso;
}
outro {
Retornar true;
}
}
}
Função póstext ()
{{
Rnd ++;
// caixa de texto limpa primeiro
Chatbox = getElement (myText);
Chat = chatbox.value;
Chatbox.value =;
// Obtenha o usuário GUID do URL
userID = logation.search.substring (1, localmente.search.length);
// Construa URL do servidor Ajax
url = 'server.aspx?
codeuricomponent (chat) + '& session =' + rnd;
// Crie e defina a instância
// do objeto de solicitação apropriado xmlHttp
Req = getAjax ();
// página de atualização com nova mensagem
Req.onReadyStatechange = function () {
if (req.readyState == 4 && req.status == 200) {{
updateAll ();
}
}
Req.open ('get', url, true);
Req.send (nulo);
}
Existem tantos, não há nada de especial, você pode ver o código -fonte, há muitas informações sobre a anotação.
para concluir
Para construir uma sala de bate -papo com o Applet Java, você precisa instalar a JVM na máquina do usuário. Existem alguns problemas de segurança com o controle ActiveX. Com o Ajax acabado de ser introduzido, você pode criar facilmente um programa de sala de bate -papo com base no HTTP que não exige que os usuários instalem nenhum software e é fácil de manter.