</> CodeBooks
    ← Volver a WebSocket (página 1)
    Portada de WebSocket: Lightweight Client-Server Communications

    WebSocket: Lightweight Client-Server Communications

    Andrew Lombardi

    Editorial
    O'Reilly
    Año
    2015
    Páginas
    ~144
    Nivel
    Básico

    De qué trata

    Guía práctica y breve de O'Reilly en la que Andrew Lombardi enseña a usar WebSocket para crear aplicaciones en el navegador que se comportan como aplicaciones de escritorio, con comunicación bidireccional sobre una sola conexión en lugar de Ajax, Comet o long polling. Está dirigida a desarrolladores que conocen JavaScript y, preferiblemente, algo de Node.js, que es la plataforma de servidor de todos los ejemplos.

    Empieza con la instalación de Node.js y npm y un «Hola, mundo» con WebSocket. Luego recorre la API del navegador: los eventos open, message, error y close, el ping/pong, los métodos send y close, los atributos readyState, bufferedAmount y protocol, y cómo detectar si el navegador admite WebSocket. Después implementa STOMP 1.0 sobre WebSocket con RabbitMQ y su plugin Web-Stomp, y compara alternativas de compatibilidad para navegadores antiguos: SockJS, Socket.IO (incluido su modo con Adobe Flash) y el servicio comercial Pusher, además del uso de proxies inversos. Los capítulos finales tratan la seguridad (WebSocket sobre TLS con certificados autofirmados, el modelo de seguridad basado en el origen, clickjacking y X-Frame-Options, denegación de servicio, enmascarado de tramas y validación de clientes), la depuración con OWASP ZAP para inspeccionar el handshake y las tramas, y un repaso detallado del protocolo: handshake, cabeceras Sec-WebSocket-Key y Sec-WebSocket-Accept, bit FIN, opcodes, fragmentación, cierre, subprotocolos y extensiones.

    Los ejemplos se van construyendo a lo largo de los capítulos: una interfaz de cotizaciones bursátiles con su servidor, una aplicación de chat bidireccional que se vuelve a implementar con SockJS, Socket.IO y Pusher, y un demonio de precios de acciones conectado a RabbitMQ mediante STOMP. Es una introducción compacta y muy completa para sus 144 páginas, y su punto fuerte es que combina el uso práctico con la depuración y la seguridad. No trata frameworks de frontend ni el escalado horizontal de servidores WebSocket, y como todo el servidor es Node.js, quien trabaje con otro lenguaje tendrá que adaptar el código. Algunas soluciones de compatibilidad, como el modo Flash de Socket.IO, ya están obsoletas.

    • WebSocket API
    • Node.js
    • Chat bidireccional
    • STOMP
    • RabbitMQ
    • SockJS
    • Socket.IO
    • Pusher
    • TLS / wss
    • Seguridad
    • Depuración con ZAP
    • Protocolo WebSocket

    ¿Cómo enseña?

    TeóricoPráctico

    Teoría + práctica

    • ✗ Sin ejercicios
    • ✓ Incluye proyectos

    Proyectos

    Cotizaciones bursátiles en tiempo real

    Interfaz web con un servidor Node.js que envía precios de acciones por WebSocket. Sirve para practicar los eventos, métodos y atributos de la API.

    Chat bidireccional

    Aplicación de chat con identidad de clientes, eventos y notificaciones, cliente en el navegador y servidor en Node.js. Después se vuelve a implementar con SockJS, Socket.IO y Pusher para comparar las opciones de compatibilidad.

    Demonio de precios con STOMP y RabbitMQ

    Servidor que implementa STOMP 1.0 sobre WebSocket y se conecta a RabbitMQ para distribuir precios de acciones. También incluye un cliente de eco con el plugin Web-Stomp.

    Más de WebSocket con nivel Básico