La versión 1.9.0 de MQTT X introduce capacidades avanzadas para la evaluación de rendimiento y la depuración de flujos de trabajo en el ecosistema IoT. Esta actualización se centra en potenciar la herramienta de línea de comandos (CLI) con funciones de benchmarking y en refinar la experiencia del usuario en la aplicación de escritorio mediante scripts dinámicos y una interfaz optimizada.
Herramientas de rendimiento en la CLI
La principal novedad en la interfaz de línea de comandos es la incorporación del comando bench. Esta funcionalidad permite a los desarrolladores ejecutar pruebas de estrés y medir la capacidad de procesamiento de sus brokers MQTT de manera nativa, eliminando la necesidad de herramientas externas para validaciones rápidas.
Con mqttx bench, es posible simular escenarios complejos de conectividad y tráfico de mensajes. A continuación, se presentan ejemplos de cómo utilizar esta herramienta con parámetros personalizados:
- Simulación masiva de conexiones: Establece 12,000 conexiones con un intervalo de 15 milisegundos entre cada una, utilizando un identificador de cliente estructurado. ```
mqttx bench conn --count 12000 --interval 15 --client-id "dev-node-%i"
- Suscripción a gran escala: Crea 4,500 suscriptores concurrentes dirigidos a un tópico específico para evaluar la distribución de mensajes. ```
mqttx bench sub --count 4500 --topic "sensores/datos/flujo"
- Generación de tráfico: Inicia 150 publicadores que envían ráfagas de datos cada 500 milisegundos para probar el rendimiento del broker bajo carga. ```
mqttx bench pub --count 150 --interval-message 500 --topic "sensores/datos/flujo" --message "payload-de-prueba"
Además de las pruebas de carga, la CLI ahora incluye un indicador para mensajes retenidos (Retain). Al recibir un paquete, la herramienta mostrará la propiedad retain: true, permitiendo distinguir claramente si el dato es un mensaje almacenado previamente en el broker o una publicación en tiempo real.
Mejoras en la aplicación de escritorio
Capacidades de scripting dinámico
La funcionalidad de scripts se ha robustecido para permitir simulaciones de datos más realistas. En versiones anteriores, los scripts se limitaban a transformaciones estáticas. En la 1.9.0, se introducen los parámetros index y msgType dentro de las funciones de script.
El parámetro index es particularmente útil en envíos programados, ya que permite alternar contenidos basándose en el contador de mensajes. Por ejemplo, se puede programar un script para que envíe estados "ON" y "OFF" de forma alterna, facilitando las pruebas de estabilidad en sistemas de control binario.
Centro de conocimiento MQTT
Se ha integrado una sección de ayuda dedicada al protocolo MQTT. Este recurso actúa como una base de conocimientos interna que cubre desde conceptos fundamentales y parámetros de conexión hasta tutoriales de programación. El objetivo es proporcionar a los desarrolladores una referencia rápida sin necesidad de abandonar el entorno de pruebas.
Optimización de la Interfaz de Usuario (UI)
La experiencia de navegación ha sido refinada para reducir la fricción operativa:
- Gestión de conexiones: Se ha simplificado el botón de creación en la barra lateral, permitiendo elegir mediante un menú desplegable si se desea añadir una nueva conexión o crear un grupo, evitando confusiones visuales.
- Atajos de teclado: Se implementaron combinaciones como
Ctrl/Cmd + Npara nuevas conexiones yCtrl/Cmd + Bpara acceder rápidamente a la información técnica de la aplicación. - Localización: Los menús de sistema ahora soportan múltiples idiomas, mejorando la accesibilidad para usuarios globales.
Correcciones y estabilidad
Esta versión soluciona un problema crítico donde los clientes dejaban de recibir mensajes en tópicos previamente suscritos tras una reconexión automática. Asimismo, se han estandarizado las unidades de medida en las configuraciones para evitar ambigüedades en la definición de tiempos de espera y ráfagas.
Hoja de ruta para futuras versiones
El desarrollo de MQTT X continuará enfocándose en la automatización y la visualización de datos. Entre las características planificadas se encuentran:
- Soporte para archivos de configuración en la CLI.
- Visualización automática de métricas mediante gráficos integrados.
- Compatibilidad con el estándar Sparkplug B.
- Optimización del motor de almacenamiento para manejar volúmenes masivos de mensajes sin degradación de rendimiento.
- Automatización de flujos de prueba (Flow testing).