Comunicación con el servidor.

Comunicación con el servidor.

de Fernando Carpani -
Número de respuestas: 3

Hola a todos.

Les mando una pregunta que recibí vía mail, están invitados a opinar.

He estado probando ejemplos de web asincrónica con node.js y Commet. 
Que ventaja tiene WebSocket-html5 frente a los dos mencionados ? 
Por ejemplo que tiene de ventaja que los otros no tengan, por ejemplo es más
sencillo de configurar ?

Saludos

FDO.

En respuesta a Fernando Carpani

Re: Comunicación con el servidor.

de Fernando Carpani -

Hola de nuevo.

Bueno, yo, en realidad, no se nada de esto... así que leo algunas cosas.... :-)

Mando las más básicas de cada uno:

Lo que nos interesa, ante todo, es:

  • poder implementar un mecanismo de streamming múltiple. Esto es un mecanismo en donde una vez que se hace una solicitud entonces el servidor envía al cliente un flujo continuo de datos, sin que el cliente vuelva a pedir nada.
  • esto debe hacersede una forma lo más simple posible para el usuario final. No nos olvidemos que no son necesariamente informáticos...

Hasta donde entiendo, Comet podría servir, pero está basado en Ajax (al menos según wikipedia). Y aparentemente, Ajax está bastante de salida.

Node.js no tenía ni idea de lo que era... pero me parece bastante buena la idea. Claro, es algo que es totalmente transversal a Comet y Websockets hasta donde lo entiendo. Node.js es básicamente, un intérprete javascript independiente de un browser. Por eso puedo construir un servidor con él...
 Ok. Puede ser una solución... Para que se pueda hacer, hay que buscar las bibliotecas adecuadas o implementarlas. En lo personal no me desagrada la idea de Node.js. Uno de los puntos claves, es ver el tema de la seguridad...

La idea de Websocket es que la comunicación entre el cliente y el servidor web sea bidireccional. Esto hace que el servidor pueda enviar datos "porque se le ocurre" al cliente, que es un poco lo que buscaríamos.

La ventaja que veo de Websockets, son:

  • Es un estandar (o trata de serlo) parte de HTML5. Esto hace que cualquiera que diga "yo soporto HTML5" debería soportar websockets. De hecho, tanto chrome como firefox dicen que lo soportan (configuración más, configuración menos).
  • Hay una organización importante (W3C - IETF) trabajando en el tema, lo que debería ser una garantía en algunos aspectos (no tengo claro en cuáles :-) ).
  • Como se utilizan normalmente los puertos 80 y 443 no debería haber problema para pasar por firewalls...
  • En los web server más usados, como apache o lighthttpd hay módulos para implementarlos y/o hay mecanismos para hacer proxy reverso de esto...

Hasta donde entiendo, encontrando las bibliotecas adecuadas, debería poder hacerse lo mismo con Node.js... incluso, tiene bibliotecas nativas para streamming (aunque hay que ver y probar todo !). Sin embargo, hay que estudiar un par de cosas:

  1. seguridad de lo que se haga.
  2. cómo poner esto detrás de un apache vía proxy reverso y que funcione...

Creo que deberíamos hacer pequeñas pruebas con Node.js y con websockets. (o con los dos: implementando websockets con Node.js....)

Bueno, anímense a buscar cosas y a discutir !!!!

Saludos

FDO.

En respuesta a Fernando Carpani

Re: Comunicación con el servidor.

de Jonathan Isaac Kantor Edelstein -

Implementé una prueba de un Chat bien básico con Node.js y me anduvo bien en mi equipo, lo probé a nivel de servidor local.
Habría que probarlo en un servidor externo para comprobar mejor su efectividad.

Otra cosa interesante que encontré, que no se si tiene mucho que ver con comunicación con el servidor, pero que podría aportar bastante en la mejora de la Performance, es el Html5 Web Worker,
que permite javascript corriendo sin afectar la perfomance de la página mientras se despliega en el Browser del usuario.
Link con ejemplo: http://www.w3schools.com/html/html5_webworkers.asp

En lo personal lo ví muy interesante y se podría combinar muy bien con la comunicación con el servidor.

En respuesta a Fernando Carpani

Re: Comunicación con el servidor.

de Martin Pacheco -

Comparto slides de una charla que hubo en la OWASP Montevideo hace poco: https://www.owasp.org/images/e/ed/OWASPLatamTour-WebSocket.pdf

Justamente sobre web asincronica y websockets. Está mas que nada orientado para el lado de seguridad y de herramientas de owasp para hacer pentesting, pero bueno, tiene que ver con el tema y puede ser rescatable lo que aparece en la slide 19, que tiene enlaces a implementaciones de websockets en diferentes lenguajes.

Ademas en la charla se enfatizó que websockets reduce MUCHO (teóricamente) el tráfico.