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.
Ejemplo simple: usar Node-RED con el servidor MQTT
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-RED
advertencia Si los nodos MQTT muestran un estado "connecting" indefinidamente, confirme que el flujo
MQTT authenticationno ha sido eliminado. Si es necesario, descárguelo aquí: mqttAuthenticationFlow.json. Impórtelo en su instancia de Node-RED, configure el nodoUserseditando las contraseñas y elimine comentarios según sea necesario.
Autenticación de usuarios MQTT en Node-RED
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 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-redes 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 MQTT
Conexión a MQTT vía WebSockets
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.
Elegir una biblioteca MQTT
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.
Ejemplo de conexión navegador-a-MQTT vía WebSockets
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 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.