Cliente IRC online en Flex en colaboración con Irc-Hispano

Ayer lunes entró en producción uno de nuestros proyectos más ambiciosos junto a Irc-Hispano, la red de chat más grande e importante del mundo hispanohablante. Se puede acceder a nuestra aplicación desde aquí.

Cliente IRC Flash

Hacía muchos años que queríamos algo así pero no existía la tecnología necesaria. Los que usamos Internet desde hace muchos años, en mi caso desde 1994, sabemos que antes de que existiese el Messenger ya estaba el IRC, el chat de toda la vida. El problema era que se necesitaban programas concretos para utilizarlo (Mirc) y después había que saber configurarlo y tener unas nociones básicas (servidores, nicks, canales, kick, ban, join…). Muy complicado para el usuario no experto. Así apareció a finales de los 90 la probablemente mayor utilidad de los applets de Java: el cliente IRC online. Ahora los usuarios ya no necesitaban conocimientos ni instalarse nada, simplemente accedían a la web, ponian su nick, el canal donde querían chatear, y a “relacionarse”. Incluso aparecieron clientes IRC en HTML, muy útiles pero sin las opciones de usabilidad de las otras.

La idea era muy buena, pero nadie había contado con los problemas asociados: necesidad de la máquina virtual de Java, lentitud, pesadez, etc. Los usuarios no tenían más que problemas.

Corría entonces el año 2002 cuando se nos ocurre hacer lo mismo pero en Flash, una tecnología presente en la mayoría de navegadores y con una implantación mucho mayor que la de Java. Nos pusimos a investigar y nos llevamos una gran decepción, no había forma de comunicarse con un servidor IRC estandar, en aquél momento Flash sólo disponía de xmlsocket, que permitía conectarse a hosts remotos pero siguiendo unas especificaciones especiales.

Todo estaba perdido hasta 2006. En junio de este año Adobe (que ya había absorvido a Macromedia) lanzaba Flex2 y junto a él la versión 9 de Flash Player con la funcionalidad más esperada por nosotros: la posibilidad de crear sockets binarios. Con esto ya se podían hacer en Flash clientes pop/smtp, ftp y, por supuesto, IRC. Esto marcó un antes y un después y nos pusimos de inmediato a planificar nuestro sueño. Tardamos más de seis meses en meternos de lleno en el proyecto puesto que ya estábamos trabajando en otros.

Desde el primer día tuvimos que comenzar a pelearnos con el RFC del protocolo IRC, fundamental para conocer el funcionamiento del sistema ya la sintaxis de todos los mensajes de ida y vuelta con el servidor. Una vez tuvimos el núcleo básico fue relativamente sencillo construir toda la interfaz de usuario sobre él, creando los comandos y acciones así como los eventos de respuesta. El primer problema era que había muchas opciones distintas, así que fuimos fijando prioridades y trabajando sobre ellas.

Cuando teníamos una versión básica pero funcional y debido a las políticas de seguridad de la máquina virtual Flash, nos pusimos en contacto con Irc-Hispano y desde el primer momento les encantó la idea, los planes y nuestro prototipo, con lo que fue sencillo llegar a un acuerdo que beneficiase a ámbas partes. Mientras nosotros desarrollábamos, la gente de Irc-Hispano se ocupaba del testing.

Hablando ya técnicamente, y aunque esté mal que yo lo diga, se ha hecho un trabajo impresionante exprimiendo toda la potencia de Flex. Hemos conseguido integrar bastantes cosas que a simple vista son casi imposibles de utilizar en Flex, como los smileys en un área de texto, o los colores de fondo. Documentándonos por aquí y por allí y viendo lo que habían conseguido otros conseguimos adaptar ciertos sistemas a nuestras necesidades quedando el conjunto francamente bien.

Desde el primer momento tuvimos claro que la única forma de conseguir sacar una aplicación de este tipo era usando técnicas de desarrollo ágiles, y así lo hicimos, preparando periódicamente versiones funcionales de lo que hubiese y poniéndola a disposición de los usuarios para que nos aportasen el feedback necesario, no solo de errores sino también de usabilidad y funcionalidad en general. La experiencia ha sido perfecta y todo el equipo ha salido beneficiado de este modo de trabajo, ya que se elimina automáticamente el estrés del miedo a los cambios cuando el producto está ya terminado.

Y así llegamos hasta hoy en que se lanza públicamente. Se han hecho muchas más funcionalidades de las previstas inicialmente y seguramente se irán haciendo muchas más a medida que se vaya utilizando. Por nuestra parte ha sido un esfuerzo enorme en horas de trabajo y quebraderos de cabeza para hacer y solucionar problemas sin respuesta aparente, pero el resultado ha valido la pena.

A partir de ahora esperamos ir corrigiendo bugs y añadiendo mejoras, ideas no nos faltan y seguramente habrá muchas sorpresas ;). Algún día también refactorizaremos :P.

29 comentarios en “Cliente IRC online en Flex en colaboración con Irc-Hispano

  1. Nada mas se olvidaron de un pequeño detalle… multiplataforma… en linux no corre, me pide la versión mas actual de flash, tengo la 9 pero no correo.

    saludos…!

  2. Buenas MaoP,
    Sí que funciona, te lo aseguro, lo hemos más que comprobado.
    Lo más probable es que tengas un Player 9 pero de los primeros, necesitarás una de las últimas actualizaciones, la 115 o 124.
    Actualiza el player y verás como sí que te funciona. En Windows y Mac se actualiza automáticamente al entrar si no tienes la versión necesaria.

    Un saludo!

  3. Osus,

    Tenías toda la razón, aunque bajé la actualización no me funcionó por no reiniciar el FF x).

    Funciona genial en FFb5!

    Felicidades, muy buen trabajo, ahora sólo faltaría que se pueda montar en cualquier web como widget y que se conectara a cualquier red, o las mas comunes al menos, freenode, oftc, etc…

    Saludos…!

  4. Genial MaoP!!

    Nada me gustaría más que se pudiese usar con cualquier red, pero por desgracia las limitaciones de seguridad de la máquina virtual Flash lo hacen imposible sin la colaboración de la propia red, puesto que tienen que hacer ciertos ajustes de seguridad en sus máquinas. Esa ha sido una de las razones de que se nos haya alargado en exceso el desarrollo.
    Hay muchas cosas en el tintero… una de ellas usarlo como widget como dices 😉 y otras mucho más espectaculares :P, todo se andará.

    Saludos,
    Osus

  5. Hola Paren.

    Gracias por la felicitación.
    En principio no tenemos pensado liberarlo ya que ha sido un acuerdo con Irc-Hispano y estamos con ellos en esto. De todos modos te comento que, debido a las políticas de seguridad del Flash Player (http://blog.osusnet.com/2008/04/15/flash-player-sockets-y-politicas-de-seguridad/) no se podrá usar directamente en ninguna otra red, necesitarás siempre que la red de IRC colabore contigo para adecuar sus sistemas a esas políticas de seguridad.

    Saludos,
    Osus

  6. Así es Osus, me leí tu post, un poco engorroso con estos tipos de Adobe, en fin, todo sea por la Seguridad, Fíjate que probé el cliente que esta en googlecode, y si conecta a freenode 🙂 Eso significa que tu cliente igual 😛 pero en fin respetemos las políticas de privacidad con irc-hispano jeje 😉

    Lo reitero, les quedo muy chulo el cliente, y lo mejor es que esta rapidísimo, muy buena opción para los otros clientes web (CGI-Ajax y Java).

    Gracias 🙂

  7. Hola Paren!!!

    ¿Lo probaste en local o a través un servidor web público?
    En local no se tienen en cuenta las políticas de seguridad, se asume que sabes lo que ejecutas, es cuando lo lanzas en un servidor público cuando te encuentras con el problema como nos ocurrió a nosotros.

    Por favor, pruébalo y nos cuentas. Pero ya te digo que el puerto 843 de freenode no responde a nada 😉

    Saludos
    Osus

  8. Realmente ha sido un cambio espectacular, sin embargo, yo soy de los de la vieja usanza y me han chafado lo de conectarme al script de la pagina y poder entrar desde las paginas web… Podeis buscar una manera sencilla de llamar al flash para implementarla como plugin para las webs en wordpress, google, myspace, etc.? Algo asi como : Tu nick:________ [ Conectar ] y que podamos dejar el canal oculto (para hacer mas accesible el chat del irc y poder implementarlo en las webs). Busco integrar la potencia del IRC-Hispano con las webs.

  9. Hola Pesadillo!!

    Puedes hacerlo de varias maneras, no tienes más que cargar el swf:
    http://www.irc-hispano.es/webchat/ircFlex.swf

    Puedes, además, pasarle parámetros: nick, clave y canal, por ejemplo:

    http://www.irc-hispano.es/webchat/ircFlex.swf?canal=pesadillo&nick=pesado

    Si pasas nick y canal automáticamente se conectará sin que salga la ventana de login. Como puedes pasar los parámetros por GET, puedes hacer tu propio formulario integrado en tu web que recoja los datos del usuario y abras una ventana nueva o lo que prefieras.

    Espero haberte ayudado, de todos modos, si tienes problemas, no dudes en preguntar.

    Saludos!!

  10. Muy bueno, la verdad, y eso de poder pasarle el canal y nick por get es genial, super util para insertarlo en foros phpbb o smf pillando el nick del user loggeado y entonces automaticamente entra al canal de chat del foro sin tener que teclear nada, solo pulsando un boton. Aunque a veces sigo usando el Pirch que uso desde 1998, por nostalgia basicamente.

  11. buenas tardes, leeo tantas chorradas para nada, alguno de vosotros sabe crear uno parecido? pos pago por si alguien me lo puede crear 🙂 agregadme a los que saben , saludos

  12. Hola,
    Como podria descargar el codigo o el swf para usarlo con mi ircd? Yo podria correr el socket en el puerto 843 como lo requiere adobe sin problema.

    Os agradezco, saludos.

    Diego

  13. VEO UN PROBLEMA EN ESA APLICACION, Y ES QUE LA COLUMNA DE LA GENTE QUE HAY ONLINE SE ESTA CONTINUAMENTE MOVIENDO, Y ES DIFICIL HACERTAR EN EL CONTACTO CONCRETO EN EL QUE QUIERES PINCHAR.

  14. Hola

    Muy buen trabajo en Irc-Hispano funciona genial, yo tengo una red basada en Unreal IRCD, tienes alguna versión para este tipo de plataforma, puedes contar con nuestra colaboración.

    Saludos cordiales
    Ivan

  15. Hola Ivan,

    En principio las funcionalidades básicas del protocolo IRC están cubiertas y no difieren entre los distintos servidores, con lo cual debería de funcionar perfectamente.

  16. Osus
    Gracias por responder, pero ustedes nos pueden proporcionar el webchat en flash para así utilizarlo en nuestro servidor IRCd?

    Nos encantaría poder utilizar esta herramienta ya que el Java no tiene las mismas caracteristicas.

    Saludos cordiales,
    Ivan

  17. Pingback: Josu - Chat Latino
  18. Que tal, estoy interesado en adquirir el producto, imagino que debe tener un precio, porfa si me contestas el mensaje con mas datos. gracias

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *