Slide 1

Slide 1 text

Angular + WebSockets Alfredo Bonilla @brolag

Slide 2

Slide 2 text

Problema • Necesitamos validar y presentar datos en tiempo real de manera efectiva.

Slide 3

Slide 3 text

¿Qué son los WebSockets? • “WebSockets es una tecnología basada en el protocolo ws, este hace posible establecer una conexión continua full-duplex, entre un cliente y servidor. Un cliente websocket podría ser el navegador del usuario, pero el protocolo es una plataforma independiente.” – Mozilla MDN

Slide 4

Slide 4 text

¿Cómo funcionan los WebSockets? • Para establecer una conexión de WebSocket, el cliente envía una petición de negociación, a la cual el servidor responde, a esta se le denomina handshake. Cliente Servidor Handshake Conexión bidireccional persistente

Slide 5

Slide 5 text

¿Cuándo utilizar WebSockets? • Vienen a reemplazar el concepto de long-polling, en donde el cliente debía enviar una petición al servidor, obtener una respuesta e inmeditamente enviar otra petición para mantener la conexión HTTP abierta. • Para mostrar cambios y validaciones de datos en tiempo real. • Excelentes para la implementación de aplicaciones de baja latencia como juegos en línea.

Slide 6

Slide 6 text

Objeto WebSocket WebSocket WebSocket( in DOMString url, in optional DOMString protocols ); WebSocket WebSocket( in DOMString url, in optional DOMString[] protocols );

Slide 7

Slide 7 text

Interfaces de WebSocket WebSocket El interfaz principal para conectar a un servidor Websocket y así enviar y recibir datos a través de la conexión. CloseEvent El evento enviado por el objeto WebSocket cuando se cierra la conexión. MessageEvent El evento enviado por el objeto WebSocket cuando se recibe un mensaje enviado desde el servidor.

Slide 8

Slide 8 text

Interfaces de WebSocket WebSocket El interfaz principal para conectar a un servidor Websocket y así enviar y recibir datos a través de la conexión. CloseEvent El evento enviado por el objeto WebSocket cuando se cierra la conexión. MessageEvent El evento enviado por el objeto WebSocket cuando se recibe un mensaje enviado desde el servidor.

Slide 9

Slide 9 text

Angular y RxJS La programación reactiva es un paradigma de programación asíncrona que abarca los flujos de datos la propagación de los cambios. RxJS es una librería de JavaScript que utiliza observables que facilita el manejo del llamados asíncronos y el código basado en call-backs.

Slide 10

Slide 10 text

Observables Permiten pasar mensajes a subscriptores, permiten el manejo de múltiples valores y eventos de manera síncrona o asíncrona. Define una función para publicar valores que pueden ser mensajes, literales o eventos. En otras palabras, es posible suscribirse a un observable y cuando los valores están listos, este va a emitirlos a un subscriptor.

Slide 11

Slide 11 text

Subjects • Son como los observables en el sentido de que permiten subscriciones, tienen los métodos next(), error() y complete() con la diferencia que permiten emitir valores a múltiples subscriptores en una misma ejecución y no en ejecuciones separadas con es el caso de los observables.

Slide 12

Slide 12 text

Patrón Observer

Slide 13

Slide 13 text

Uniendo todos los conceptos Cliente https://github.com/brolag/websockets-client Servidor https://github.com/brolag/websockets-server

Slide 14

Slide 14 text

¡Conversemos! Alfredo Bonilla Instagram: @brolag Twitter: @brolag Facebook: @brolag