Hola!
Recuerdo que le prometí a Taimado que le mostraría el código, y al final no me acordé... así que ahí va!
Código: Seleccionar todo
import java.io.*;
import java.text.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
/**
Chat 2.0, Juggernaut, 25/8/2004
*/
public class Chat extends HttpServlet
{
public Vector Missatges=null;
public final int MaxMissatges=10;
public final String VariableEntrada="Entrada";
public final String VariableSortida="Sortida";
public final String VariableMode="Mode";
public void init(ServletConfig p0) throws ServletException
{
// Primer a fer el que feia.
super.init(p0);
Missatges=new Vector();
}
public String GetMissatges()
{
String Mis=new String(VariableSortida + "=");
for (Enumeration e=Missatges.elements();e.hasMoreElements();)
{
Mis=Mis + (String)e.nextElement() + "\n";
}
return Mis;
}
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException
{
doPost(request, response);
}
public void doPost(HttpServletRequest p0, HttpServletResponse p1)
throws ServletException, IOException
{
if ((p0.getParameter(VariableEntrada)!=null) && (p0.getParameter(VariableMode)!=null))
{
String NouMissatge=new String(p0.getParameter(VariableEntrada));
String Mode=new String(p0.getParameter(VariableMode));
if (Mode.equals("1"))
{
// I ara anem a ficar el nou missatge a la llista de miossatges,
// com a darrer
Missatges.addElement(NouMissatge);
if (Missatges.size()>MaxMissatges) Missatges.removeElementAt(0);
}
}
p1.setContentType("text/html");
PrintWriter out = p1.getWriter();
out.println(GetMissatges());
}
}
Este es el servlet que lo permite. Luego hay un flash que, en el primer frame, haría esto:
Código: Seleccionar todo
stop();
i = 1;
site = "http://www.la_web_donde_esta_colgado_el_servlet.com";
Cada cierto tiempo ejecuta este otro código:
Código: Seleccionar todo
loadVariablesNum(site add "/servlets/Chat?Mode=0", 0, "POST");
Con lo cual refresca lo que los demás han puesto. La orden loadVariables carga un string en formato xxx-uencode-formdata o algo así, el formato que usan los cgi's, y eso carga datos dentro de ActionScript. Si tienes dentro una caja de texto llamada "Missatge", lo carga dentro.
Por último, un botón enviar, que tenga este código:
Código: Seleccionar todo
on (release, keyPress "<Enter>") {
loadVariablesNum(site add "/servlets/Chat?Entrada=" add escape(Usuari) add ":%20" add escape(Miss) add "&Mode=1", 0, "POST");
}
Que envía datos al servlet sobre lo que ha escrito el usuario.
No es complicado, pero requiere unos cuantos conocimientos en Java Servlets y en ActionScript. Total, si cuentas, 41 lineas de código efectivo.
Este es un mundo de estúpidos, controlados por imbéciles, para beneficio de mediocres.