×

Advertencia

JUser: :_load: No se ha podido cargar al usuario con 'ID': 475

Integrando WebSocket a Joomla!

Escrito por | 28 Diciembre 2011 | Publicado en Octubre 2012
El objetivo de este documento es dar a conocer la tecnología de WebSocket, incluida en las ultimas especificaciones de HTML5, que nos permite una comunicación mucho mas rápida y dinámica en la comunicación servidor/cliente.

¿Qué es WebSocket?

Dice wikipedia:

"WebSocket es una tecnología que proporciona un canal de comunicación bidireccional y full-duplex sobre un único socket TCP. Está diseñada para ser implementada en navegadores y servidores web, pero puede utilizarse por cualquier aplicación cliente/servidor.”
Para entender las implicaciones de WebSocket, debiéramos primero explicar como funciona la web hoy en día: Cada vez que cargamos un sitio, enviamos un formulario, apretamos en algún link lo que hace el navegador (browser) es enviar una petición al servidor web que es el encargado de resolver esta petición y mostrar lo que le es encomendado."

Para entender las implicaciones de WebSocket, debiéramos primero explicar como funciona la web hoy en día: Cada vez que cargamos un sitio, enviamos un formulario, apretamos en algún link lo que hace el navegador (browser) es enviar una petición al servidor web que es el encargado de resolver esta petición y mostrar lo que le es encomendado.

Por otro lado tenemos la conexión usando WebSocket donde el cliente enviá una única petición llamada 'handshake' (apretón de manos) donde queda una única conexión bidireccional cliente/servidor directa. (WebSockets)

Esto abre un nuevo camino para desarrollos como sistemas financieros, aplicaciones medicas o cualquier tipo de aplicación que necesite conexiones en tiempo real.

NOTA: La imagen fue creada por WebSocket.org Muchas gracias a los autores 

¿Todo muy lindo... cómo se usa?

Acá es en donde se separan las cosas, por un lado tenemos el cliente, y por otro el servidor. Actualmente existen varios servidores de WebSocket en desarrollo como por ejemplo:

Pero aprovechando que el proyecto Joomla! Platform nos ofrece la posibilidad de utilizar la librería en la linea de comandos, podemos pensar en crear nuestro propio servidor de WebSocket utilizando la librería.

Para escribir un servidor de WebSocket desarrollado en PHP y usando Joomla! Platform como estructura se necesitan tener clases y objetos especiales usando sockets; estos objetos no están incluidos en la versión oficial de Joomla! Platform, por lo tanto he creado unas nuevas librerías basandome en un trabajo de Andrew Eddie sobre WebSocket para Joomla! Platform que incluyen el manejo y configuración de un servidor de WebSocket.

Estas librerías se pueden descargar desde el fork que he creado en mi cuenta de GitHub: https://github.com/fastslack/joomla-platform/tree/sockets/libraries/joomla/socket

Instalación del servidor de WebSocket

mkdir websocket_example, cd websocket_example
git clone -b sockets git://github.com/fastslack/joomla-platform.git
git clone git://github.com/fastslack/websocket-example.git
cd websocket-example
configuration.dist.php cp configuration.php

Después de esto, editar el archivo configuration.php y poner ahí los datos del acceso al servidor de MySQL.

Ejecutando el servidor

Ahora lo único que nos resta hacer es ejecutar el servidor para iniciar todo el proceso:

$ cd cli
$. /websocket_example
Starting server ...

Probando la conexión al servidor de WebSocket

Una vez que tenemos el servidor de WebSocket funcionando, debemos instalar y configurar el componente com_websockets donde el cliente va a conectarse con el servidor. En este componente incluiremos los archivos javascript (*.js) necesarios para realizar estas tareas.

Este articulo no pretende explicar la creación de un componente para Joomla!, para eso existen muy buenos tutoriales en la Web. Así que voy a ofrecer para la descarga el componente de prueba ya terminado y listo para ser usado.

Conclusiones

WebSocket promete ser una buena plataforma para la largamente buscada 'transferencia bidireccional en los protocolos HTTP y HTML que permitiría la reducción en los datos de transferencia y permitiendo crear herramientas mucho mas rápidas y dinámicas en tiempo real y si a esto le agregamos las diferentes funcionalidades que puede implementar la librería Joomla! Plarform el horizonte se vuelve muy prometedor.

Have fun!

Visto 8504 veces Etiquetado como Spanish, Desarrollador

Matias Aguirre is a young Argentine programmer with extensive experience in open source systems and events involving Free Software in Latin America and the world. A fervent advocate of open source has been used since 1996 free systems using Slackware GNU / Linux as a development platform.

By the year 1999 met the PHP programming language and over time was developing, fixing and improving management systems like Mambo free, Wordpress and Joomla! the latter being among the large community preferences and quality of developed code.

In the absence of solutions in the field of data migration between versions, in January 2008 created the migration tool called mtwMigrator that migrates data from a Joomla! 1.0 to Joomla! 1.5. This tool was very useful to users and Joomla! and opened the way to the development of jUpgrade with input and support all Joomla! community as well as major developers of Joomla!

Perfiles Sociales