Vassily
Administrador
    
Votos: 30
Desconectado
Mensajes: 3,166

|
 |
« : 13 de ſeptiembre de 2005, 03:58:42 » |
|
Puede que ASP no sea el lenguaje mas idóneo para una aplicación de chat, pero el caso es que funciona y al ser ASP es completamente compatible con cualquier navegador, y además es, como verà ©is, tremendamente sencillo de desarrollar.
El código que os muestro es el utilizado en el chat de esta web, el introducir mejoras ya es cosa vuestra, es fácil añadir funcionalidade s al estilo de las que verà ©is en otros chat en Java, como colores, lista de usuarios, etc ...
Bueno, empezamos por el principio. 1.-Lo primero que necesitamos es un lugar para almacenar las frases que los usuarios introduzcan para luego mostrarlas. Para ello usaremos un array de nueve elementos, que seran la cantidad de frases que mostraremos en el chat ( podà ©is cambiar el numero a lo que os parezca oportuno). Este array lo guardaremos dentro del objeto Application, a fin de que pueda ser accedido por todo el mundo. A fin de que este disponible siempre, la crearemos dentro del archivo global.asa.
Global.asa
<SCRIPT LANGUAGE="VBScript" RUNAT="Server"> Sub Application_On Start
Dim Auxiliar() Redim Auxiliar(9) Application("Opiniones")=Auxiliar End Sub </SCRIPT>
A partir de este momento tenemos una variable de aplicación denominada "opiniones" que contiene nuestro chat
2.-Lo siguiente que necesitamos es una página que nos muestre el contenido de nuestro chat (es decir, lo que hay en application("opiniones"). A este modulo lo denominaremos visualización.asp. Consiste en una pagina que se llama a si misma cada x segundos (META HTTP-EQUIV="REFRESH" CONTENT="5), con lo que nos refresca la información, y que muestra los datos contenidos en Application("opiniones") mediante un sencillo bucle FOR
Visualizacion. asp <% PaginaActual="http://"&_ Request.Server Variables("SERVER_NAME")&_ Request.Server Variables("SCRIPT_NAME") %> <html>
<head> <META HTTP-EQUIV="REFRESH" CONTENT="5;<%=PaginaActual%>"> <title>MiniChat (visualización)</title> </head>
<body> <FONT FACE="Comic Sans MS" COLOR="Blue" size="1"> <%
IF NOT isArray( Application("Opiniones")) THEN Application.Lo ck Dim Auxiliar() Redim Auxiliar(9) Application("Opiniones")=Auxiliar Application.Un Lock END IF
Temporal=Application("Opiniones") FOR Opinion=8 to 0 step -1%> <%= Temporal(Opinion) %> <BR> <% NEXT %> <FONT> </body>
</html>
3.-Nuestro tercer modulo sera "incluir.asp" el cual nos va a permitir que los usuarios escriban opiniones en el chat. Para que un usuario escriba una aportación, este usuario debe estar identificado por un apodo o "nick", este apodo lo guardaremos en una cookie.
incluir.asp <% IF Request.Cookie s("Apodo")="" and request.form("opinion")<>"" THEN if request.form("apodo")<>"" then Response.Cooki es("Apodo")=Request.Form("Apodo") else Response.Cooki es("Apodo")="Anonimo" end if Application.Lo ck Temporal=Application("Opiniones") FOR i=7 TO 0 STEP -1 Temporal(i+1)=Temporal(i) NEXT if request.form("apodo")<>"" then Temporal(0)="<FONT COLOR=""#000000"">** " & Request.Form("Apodo") & " ** Entra en el minichat</FONT>" else Temporal(0)="<FONT COLOR=""#000000"">** Anonimo ** Entra en el minichat</FONT>" end if Application("Opiniones")=Temporal Application.Un lock
END IF IF Request.Form("Opinion")<>"" THEN Apodo=Request.Cookies("Apodo") Application.Lo ck Temporal=Application("Opiniones") FOR i=7 TO 0 STEP -1 Temporal(i+1)=Temporal(i) NEXT Temporal(0)=Apodo&": "&Request.Form("Opinion") Application("Opiniones")=Temporal Application.Un lock END IF%>
<html>
<head> <title>incluir opinion</title> <base target="_self"> </head>
<body bgcolor="#6699FF"> <FORM METHOD="POST" ACTION="incluir.asp"> <% IF Request.Cookie s("Apodo")="" THEN %> <font color="#FFFFFF"> Apodo:</font> <INPUT TYPE="TEXT" SIZE=10 NAME="Apodo"> <input type="hidden" name="go" size="20" value="si"><BR> <% END IF %> <INPUT TYPE="TEXT" SIZE=30 NAME="Opinion"> <INPUT TYPE="SUBMIT" VALUE="Enviar"> <a href="cerrar.asp" target="_top">Salir[/url] </FORM> </body>
</html>
4.- Cuando el usuario termine su sesión de chat debemos eliminar la cookie que lo identifica, para ello usaremos el modulo cerrar.asp
cerrar.asp <% if Request.cookie s("Apodo")<>"" then Application.Lo ck Temporal=Application("Opiniones") FOR i=7 TO 0 STEP -1 Temporal(i+1)=Temporal(i) NEXT Temporal(0)="<FONT COLOR=""#FF0000"">** " &Request.cookie s("Apodo")&" ** Se va del minichat</FONT>" Application("Opiniones")=Temporal Application.Un lock response.cooki es("apodo")=""
END IF%> <HTML> <HEAD> <script language="JavaScript"> {close();} </SCRIPT> </HEAD> <BODY> </BODY> </HTML>
5.- Ahora lo montamos todo en una pagina de frames
default.asp <html>
<head> <title>Salon de conversación</title> </head>
<FRAMESET rows="*,70"> <FRAME SRC="visualizacion. asp"> <FRAME SRC="incluir.asp" target="_self"> </FRAMESET>
</html>
6.- Para que quede "bonito" mostraremos el chat en una nueva ventana sin barras y mas pequeña, eso lo haremos con javaScript <HTML> <HEAD> <script language="JavaScript"> <!-- function openWindow(url, name) { popupWin = window.open(url, name, 'scrollbars,resizable,width=400,height=350') } // --> </script> </HEAD> <BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#000000" VLINK="#000000"> <a HREF="javascript:openWindow('default.asp', 'minichat');">Enter chatroom[/url] </BODY> </HTML>
Fuente asptutor
|