Mi primera sala de chat fue escrita en ASP 3.0. El programa es relativamente simple. En ese momento, para construir una sala de chat real, se debe usar el applet de Java o el control ActiveX. Las salas de gráficos basadas en HTTP enfrentaron las mismas preguntas que mi primera sala de chat. Estos problemas incluyen el fenómeno intermitente de la pantalla causado por la actualización de la página. Pero este problema ha sido resuelto por Ajax. Ajax es una combinación de llamadas asíncronas JavaScript y XML. Ahora use un código JavaScript en el servidor para lograr una sala de chat real. Este artículo no presentará AJAX y supone que tiene una cierta comprensión del uso de Ajax y ASP.NET. Simplemente presente cómo usar la tecnología AJAX para crear una sala de chat básica.
Rutina
Esta es una sola sala de chat de un múltiplo. Puede lograr funciones básicas de chat, y también admite algunas líneas de comando como: /admin Clear para borrar el historial de chat, /Nick [nombre] para cambiar el apodo del usuario. El programa ilustra este programa para procesar toda la información de chat y la información del usuario con una clase de calificación.
Usuarios hashtables;
Chat stringcollection;
Declara una instancia global de chatengine en global.asax.cs, compartiendo a todos los usuarios en la sala de chat:
Public static Uchat.chatngine.ichatngine Engine = new Uchat.chatngine.chatengine ();
También hay una función de temporizador de JavaScript utilizada para sincronizar las variables globales y la información de la página.
Función SetTimers ()
{{
TimeId = Window.SetTimeOut (updateAll (), refrigerar);
}
Cada usuario es identificado de manera única por un nombre de usuario y un GUID.
Public void adduser (ID de cadena, usuario de cadena)
{{
// asegúrese de que el nombre de usuario no exista alreamy
if (! userexists (usuario))
{{
// Agregar usuario a la lista de usuarios
ussers.add (id, usuario);
// Muestra un mensaje de notificación a todos los usuarios
Chat.add (this.makeserverMessage (string.format (string.format (
Unidofmt, usuario)))));
}
}
Programa que ejecuta interfaz
La página de inicio muestra información básica sobre la sesión actual, como el número de usuario, el tamaño del historial de chat. Los usuarios deben proporcionar un nombre de usuario para ingresar a la sala de chat. Haga clic en el botón Iniciar sesión para ingresar la función a continuación:
Inicio de sesión vacío protegido (remitente de objeto, EventArgs e)
{{
String user = txtusername.Text;
if (! ValidateNick (usuario)) return;
if (global.engine.userexist (usuario))
{{
lblerrormsg.text = un usuario con este +
Nombre Alream existe, intente de nuevo.;
Devolver;
}
Response.Redirect (Server.aspx? Action = Login & U = + User);
}
Después de una verificación simple, se agrega el usuario a las listas de usuarios a través de la función adduser, y luego ingresar a la página de chat chat.aspx.
<script type = text/javaScript>
SniffbrowserType ();
// muestra la carga .. pantalla
showloadscreen ();
// Establecer el tiempo de tiempo de JavaScript y
// Carga la lista de usuarios y los mensajes
setTimers ();
setfocus ('mytext');
</script>
Cuando el usuario escribe alguna información y devuelve, se llamarán a las siguientes funciones:
<Entrada tipo = text class = myText
id = mytext onedown = captureReturn (evento)>
// Capture la tecla ENTER en el cuadro de entrada y el mensaje de publicación
Función captureReturn (evento)
{{
if (event.whhch || event.keycode)
{{
If ((event.which == 13) || (event.keycode == 13))
{{
Posttext ();
Devolver falso;
}
demás {
Devolver verdadero;
}
}
}
Función PostText ()
{{
Rnd ++;
// borrar el cuadro de texto primero
Chatbox = getElement (myText);
Chat = chatbox.value;
Chatbox.value =;
// Obtener el usuario Guid de URL
userId = logation.search.substring (1, localmente.search.length);
// construir URL del servidor AJAX
url = 'server.aspx?
Encodeuricponent (chat) + '& session =' + rnd;
// Crear y establecer la instancia
// del objeto de solicitud XMLHTTP
Req = getajax ();
// Actualizar página con un nuevo mensaje
Req.onreadyStateChange = function () {
if (req.readyState == 4 && req.status == 200) {{
updateAll ();
}
}
Req.open ('get', url, verdadero);
Req.send (nulo);
}
Hay tantos, no hay nada especial, puede ver el código fuente, hay mucha información de anotación.
en conclusión
Para construir una sala de chat con Java Applet, debe instalar JVM en la máquina del usuario. Hay algunos problemas de seguridad con el control ActiveX. Con el AJAX que se acaba de presentar, puede crear fácilmente un programa de sala de chat basado en HTTP que no requiere que los usuarios instalen ningún software, y es fácil de mantener.