Chuck's Academy

Streaming y Buffering en Node

Duplex Streams en Node.js

¿Qué es un Duplex Stream?

Un duplex stream es un stream que es tanto readable como writable. Esto significa que puedes leer y escribir datos en el mismo stream. Los duplex streams son útiles para escenarios en los que se desea combinar la funcionalidad de lectura y escritura, como la comunicación bidireccional en redes (sockets) y la manipulación de archivos y datos de flujo en tiempo real.

Creación de un Duplex Stream

Para crear un duplex stream, puedes extender la clase Duplex del módulo stream y sobreescribir los métodos _read y _write.

Ejemplo Básico

javascript

En este ejemplo, MyDuplexStream almacena los datos escritos en un array y los emite cuando se leen.

Uso de Duplex Streams

A continuación se muestra cómo usar el MyDuplexStream para escribir y luego leer datos.

javascript

Ejemplo Práctico: Sockets

Una aplicación común para los duplex streams es la comunicación bidireccional en redes. Aquí hay un ejemplo sencillo usando sockets de red.

javascript

En este ejemplo, el servidor crea un duplex stream para cada conexión de socket, permitiendo que los datos sean leídos y escritos en ambas direcciones.

Beneficios de Usar Duplex Streams

  • Versatilidad: Permite entrada y salida de datos en un solo stream.
  • Comodidad: Simplifica la lógica para aplicaciones que requieren tanto lectura como escritura de datos.
  • Eficiencia: Ideal para aplicaciones de red y tiempo real.

Resumen

Los duplex streams son una herramienta poderosa en Node.js para manejar flujos de datos bidireccionales. Ya sea para redes, manipulación de archivos o procesamiento en tiempo real, su capacidad para leer y escribir datos en el mismo stream simplifica y optimiza el desarrollo de aplicaciones complejas.

Diagrama de Duplex StreamsDiagrama de Duplex Streams


Pregúntame lo que sea