Funcionamiento de los llamados Http y Sockets
Clase 40 de 80 • Curso de Angular 4
Imagina un mundo en el que después de viajar horas y horas en un avión, llegas a un hermoso lugar y no tienes forma de compartir esa felicidad con tus amigos y familia, todas las fotos se quedan en los rollos ¿Puedes imaginar un mundo sin redes sociales? Un mundo sin comunicación. Antes, las personas se comunicaban usando cartas, muchas historias de amor hace no más de 25 años nacieron y crecieron escribiendo cartas que tardaban meses en llegar de un enamorado al otro.
Hoy en día gracias a nuestros genios programadores tenemos Internet,. Cada vez se desarrollan mejores técnicas y mejores formas de usarlas para que nuestra vida siga cambiando en diferentes áreas, y tú puedes hacer parte de este cambio.
Quiero mostrarte cómo funciona la comunicación con servidores remotos que es lo que nos permite tener conversaciones instantáneas, publicar fotos en redes sociales, ver vídeos desde tu playstation con youtube, vender tus obras de arte a través de lugares como istockphoto.com, o almacenar toda tu información en la nube. Increíble ¿Verdad? Muchos de estos servicios usan Angular para trabajar.
Angular nos ofrece una forma de trabajar con éste tipo de comunicación, se llama Angular Universal, y nos ofrece el SEO del que carecen todas las Single Page Applications
Otra forma es enviar solo los datos que el cliente requiera usando por ejemplo el protocolo REST. En este caso el cliente se encarga del html al 100%, es decir, la página se construye en tu navegador.
Aquí tenemos dos formas de establecer esta comunicación:
Por http: el cliente inicia una llamada hacia el servidor; el servidor regresa un resultado y cuando el cliente recibe ese resultado, el ciclo de vida de la llamada se ha terminado.
HTTP aprovecha la red de internet para funcionar, nos abstrae de mucha complejidad. Cuando HTTP establece una comunicación, el canal se cierra automáticamente una vez que recibió respuesta. La ventaja de HTTP sobre usar sockets es su facilidad de uso y la gran popularidad que ha recibido de parte de la comunidad, empresas y proyectos.
La otra forma es mediante sockets, pero ¿Qué son los sockets?
En Angular 4 se implementó por completo el uso de sockets para la comunicación con los servidores, esto quiere decir que el cliente abre comunicación con el servidor, el servidor dedica un puerto para intercambiar información con el cliente y a través de este medio, una cantidad específica de llamadas y respuestas pueden ser entabladas mientras el socket continúe abierto.
Los sockets nos brindan una manera más flexible de controlar las comunicaciones y dada su naturaleza, permiten que las apps funcionen de forma más rápida y reactiva. Sin embargo, los sockets son más complejos de usar y aún no son muy populares.
Yo te recomiendo siempre que sea posible usar sockets pero http sigue siendo una forma confiable y muy popular de proveer servicios y API’s tipo REST.
Recuerda que para nuestro proyecto PlatziSquare usamos Firebase como servidor que permite acceder a su base de datos en cualquier modalidad (http o socket). Veremos ejemplos tanto en HTTP como en sockets usando RX.js, la librería de Angular 4.