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, diseñado para soportar una integración fluida con dispositivos IoT a través de canales de comunicación seguros y fiables.

Para habilitar el servidor MQTT, navegue al panel de control de Stackhero, localice su servicio Node-RED y active la opción "MQTT Server" en la configuración del servicio.

Una vez activado, las conexiones al servidor MQTT se pueden establecer utilizando el puerto 8883, con el cifrado TLS asegurando comunicaciones seguras.

Para ayudarle a comenzar, considere el siguiente ejemplo que demuestra cómo conectar Node-RED al servidor MQTT. Este ejemplo implica enviar un mensaje a un tema y recibir mensajes de él. Puede descargar el ejemplo de flujo e importarlo en su instancia de Node-RED a través del menú "Import".

Ejemplo simple de conexión MQTT a Node-REDEjemplo simple de conexión MQTT a Node-RED

advertencia Si los nodos MQTT muestran un estado "connecting" indefinidamente, confirme que el flujo MQTT authentication no ha sido eliminado. Si es necesario, descárguelo aquí: mqttAuthenticationFlow.json. Impórtelo en su instancia de Node-RED, configure el nodo Users editando las contraseñas y elimine comentarios según sea necesario.

La autenticación de usuarios se gestiona a través de un flujo dedicado en Node-RED. Puede acceder al flujo "MQTT Authentication" directamente desde el panel de administración de Node-RED.

Flujo de autenticación MQTTFlujo de autenticación MQTT

Dentro del flujo de autenticación, localice el nodo plantilla Users. Este nodo contiene un array para definir las credenciales de usuario. Puede añadir tantos usuarios como sea necesario para su configuración.

Nota: El usuario node-red es crucial para la conexión de Node-RED al servidor MQTT. Asegúrese de que este usuario permanezca en la configuración.

Nodo de usuarios MQTTNodo de usuarios MQTT

Puede conectarse al servidor Mosquitto MQTT utilizando el protocolo MQTT o WebSockets.

Aunque el protocolo MQTT es ligero e ideal para dispositivos IoT, no es compatible directamente con los navegadores web. Para salvar esta brecha, encapsule el tráfico MQTT dentro del protocolo WebSocket, que funciona perfectamente con los servicios de Stackhero.

Para habilitar la conectividad WebSocket, active la opción "WebSocket Support" en el panel de control de Stackhero. Luego, configure su cliente con la URL del servidor wss://XXXXX.stackhero-network.com:443/mqtt, sustituyendo mqtts://XXXXX.stackhero-network.com por la URL correcta de WebSocket.

Para propósitos de desarrollo, recomendamos la biblioteca "MQTT.js". Esta robusta biblioteca JavaScript es compatible con entornos Node.js y de navegador. Puede explorarla más a fondo en su repositorio oficial.

Para obtener orientación sobre cómo establecer una conexión basada en navegador al servidor MQTT utilizando WebSockets, consulte este repositorio: https://github.com/stackhero-io/mqttWebSocketGettingStarted. Puede modificar el archivo src/index.html para ingresar la url, username y password de su servidor para su configuración específica.

Ejemplo de WebSocket MQTTEjemplo de WebSocket MQTT

Asegúrese de que el soporte WebSocket esté habilitado en el panel de control de Stackhero para permitir que esta configuración funcione como se espera.