Node-RED: Servidor MQTT
Cómo conectar Node-RED al servidor Mosquitto MQTT
👋 ¡Bienvenido a la documentación de Stackhero!
Stackhero ofrece una solución Node-RED cloud lista para usar que proporciona una serie de beneficios, incluyendo:
- Servidor MQTT incluido (Mosquitto).
- Acceso completo a la interfaz de administración de Node-RED.
- Dashboard de Node-RED incluido.
- Servidor de correo SMTP ilimitado y dedicado incluido.
- Actualizaciones sin esfuerzo con solo un clic.
- Nombre de dominio personalizable asegurado con HTTPS (por ejemplo, https://node-red.tu-empresa.com).
- Rendimiento óptimo y seguridad robusta impulsados por una VM privada y dedicada.
Ahorra tiempo y simplifica tu vida: ¡solo toma 5 minutos probar la solución de Node-RED cloud hosting de Stackhero!
El servicio Node-RED de Stackhero incluye un servidor MQTT integrado, lo que facilita la integración de sus dispositivos IoT a través de canales de comunicación seguros y fiables.
Para comenzar, simplemente acceda al panel de Stackhero, localice su servicio Node-RED y active la opción "MQTT Server" en la configuración del servicio.
Una vez que el servidor esté habilitado, podrá conectarse a través del puerto 8883. Todas las conexiones están protegidas mediante cifrado TLS, garantizando la seguridad de sus datos.
Ejemplo sencillo: usar Node-RED con el servidor MQTT
Si es la primera vez que utiliza MQTT con Node-RED, aquí tiene un ejemplo sencillo para ayudarle a empezar. Este ejemplo muestra cómo enviar un mensaje a un topic y recibir mensajes de él. Puede descargar el ejemplo de flujo e importarlo en su instancia de Node-RED mediante el menú "Import".
Ejemplo sencillo de conexión de MQTT a Node-RED
Si sus nodos MQTT se quedan atascados en el estado "connecting", es recomendable comprobar si el flujo
MQTT authenticationsigue presente. Si falta, puede descargarlo aquí: mqttAuthenticationFlow.json. Importe este flujo en su instancia de Node-RED, actualice el nodoUserscon las contraseñas que prefiera y elimine los comentarios innecesarios si lo considera oportuno.
Autenticación de usuarios MQTT en Node-RED
La gestión de la autenticación de usuarios MQTT es sencilla gracias a un flujo dedicado en Node-RED. Puede encontrar el flujo "MQTT Authentication" directamente desde el panel de administración de Node-RED.
Flujo de autenticación MQTT
Dentro de este flujo de autenticación, busque el nodo plantilla Users. Este nodo contiene un array donde puede definir las credenciales de cada usuario. Tiene la flexibilidad de añadir tantos usuarios como requiera su proyecto.
Nota: El usuario
node-redes esencial para que Node-RED se conecte al servidor MQTT. Asegúrese de no eliminar este usuario de su configuración.
Nodo de usuarios MQTT
Conexión a MQTT mediante WebSockets
Tiene la posibilidad de conectarse al servidor Mosquitto MQTT utilizando tanto el protocolo MQTT como WebSockets.
Aunque el protocolo MQTT es ligero y especialmente adecuado para dispositivos IoT, no está soportado de forma nativa en los navegadores web. Si desea interactuar con su servidor MQTT desde un navegador, deberá utilizar WebSockets. Este método permite encapsular el tráfico MQTT dentro del protocolo WebSocket y funciona perfectamente con los servicios de Stackhero.
Para habilitar la conectividad WebSocket, simplemente active la opción "WebSocket Support" en su panel de Stackhero. Una vez activada, puede configurar su cliente para utilizar la URL WebSocket: wss://<XXXXXX>.stackhero-network.com:443/mqtt. Asegúrese de sustituir la URL predeterminada mqtts://<XXXXXX>.stackhero-network.com por esta URL WebSocket para las conexiones desde el navegador.
Elección de una librería MQTT
Para el desarrollo, la librería "MQTT.js" resulta especialmente útil. Es una librería JavaScript robusta, compatible tanto con Node.js como con entornos de navegador. Puede obtener más información en su repositorio oficial.
Ejemplo de conexión navegador-a-MQTT mediante WebSockets
Si busca un ejemplo práctico de cómo conectar su navegador al servidor MQTT usando WebSockets, puede consultar este repositorio: https://github.com/stackhero-io/mqttWebSocketGettingStarted. Puede modificar el archivo src/index.html con la url, el username y el password de su servidor para adaptarlo a su configuración.
Ejemplo de MQTT WebSocket
Antes de probar esta configuración, asegúrese de que el soporte de WebSocket está habilitado en su panel de Stackhero. Así se garantiza el correcto funcionamiento de las conexiones desde el navegador.