Node-RED: MQTT-server
Hoe u Node-RED verbindt met de Mosquitto MQTT-server
👋 Welkom bij de Stackhero-documentatie!
Stackhero biedt een kant-en-klare Node-RED cloud oplossing met tal van voordelen, waaronder:
- MQTT server inbegrepen (Mosquitto).
- Volledige toegang tot de Node-RED admin UI.
- Node-RED Dashboard inbegrepen.
- Onbeperkte en toegewijde SMTP e-mailserver inbegrepen.
- Moeiteloze updates met slechts één klik.
- Aanpasbare domeinnaam beveiligd met HTTPS (bijvoorbeeld, https://node-red.your-company.com).
- Optimale prestaties en robuuste beveiliging aangedreven door een privé en toegewijde VM.
Bespaar tijd en vereenvoudig uw leven: het kost slechts 5 minuten om de Node-RED cloud hosting oplossing van Stackhero te proberen!
De Node-RED-dienst van Stackhero wordt geleverd met een ingebouwde MQTT-server, waardoor het eenvoudig is om uw IoT-apparaten te integreren via veilige en betrouwbare communicatiekanalen.
Om aan de slag te gaan, gaat u naar het Stackhero-dashboard, zoekt u uw Node-RED-dienst en schakelt u de optie "MQTT Server" in binnen de serviceconfiguratie.
Zodra de server is ingeschakeld, kunt u verbinding maken via poort 8883. Alle verbindingen zijn beveiligd met TLS-encryptie, zodat uw data beschermd blijft.
Eenvoudig voorbeeld: Node-RED gebruiken met de MQTT-server
Als u nieuw bent met MQTT in combinatie met Node-RED, vindt u hier een eenvoudig voorbeeld om u snel op weg te helpen. Dit voorbeeld laat zien hoe u een bericht naar een topic stuurt en berichten van dat topic ontvangt. U kunt het voorbeeld-flow downloaden en importeren in uw Node-RED-omgeving via het menu "Import".
Eenvoudig voorbeeld van MQTT-koppeling met Node-RED
Als uw MQTT-nodes blijven hangen op de status "connecting", is het verstandig te controleren of de
MQTT authentication-flow nog aanwezig is. Als deze ontbreekt, kunt u hem hier downloaden: mqttAuthenticationFlow.json. Importeer deze flow in uw Node-RED-omgeving, werk deUsers-node bij met uw gewenste wachtwoorden en verwijder eventueel overbodige opmerkingen.
MQTT-gebruikers authenticeren in Node-RED
Het beheren van MQTT-gebruikersauthenticatie is eenvoudig met een speciale flow in Node-RED. U vindt de "MQTT Authentication"-flow direct in het Node-RED-beheerpaneel.
MQTT-authenticatieflow
Binnen deze authenticatieflow zoekt u naar de Users-template node. Deze node bevat een array waarin u de inloggegevens voor elke gebruiker kunt definiëren. U kunt zoveel gebruikers toevoegen als uw project vereist.
Opmerking: De gebruiker
node-redis essentieel voor de verbinding van Node-RED met de MQTT-server. Verwijder deze gebruiker niet uit uw configuratie.
MQTT-gebruikersnode
Verbinden met MQTT via WebSockets
U heeft de flexibiliteit om verbinding te maken met de Mosquitto MQTT-server via het MQTT-protocol of via WebSockets.
Hoewel het MQTT-protocol lichtgewicht is en daardoor zeer geschikt voor IoT-apparaten, wordt het niet standaard ondersteund in webbrowsers. Wilt u vanuit een browser met uw MQTT-server communiceren, dan gebruikt u WebSockets. Hiermee wordt het MQTT-verkeer verpakt binnen het WebSocket-protocol en dit werkt naadloos met de diensten van Stackhero.
Om WebSocket-connectiviteit te activeren, schakelt u eenvoudig de optie "WebSocket Support" in op uw Stackhero-dashboard. Zodra dit is ingeschakeld, configureert u uw client om de volgende WebSocket-URL te gebruiken: wss://<XXXXXX>.stackhero-network.com:443/mqtt. Vervang de standaard mqtts://<XXXXXX>.stackhero-network.com door deze WebSocket-URL voor browsergebaseerde verbindingen.
Een MQTT-bibliotheek kiezen
Voor ontwikkeldoeleinden is de "MQTT.js"-bibliotheek bijzonder handig. Dit is een robuuste JavaScript-bibliotheek die compatibel is met zowel Node.js als browseromgevingen. Meer informatie vindt u in de officiële repository.
Voorbeeld van browser-naar-MQTT-verbinding via WebSockets
Wilt u een praktisch voorbeeld van hoe u vanuit uw browser via WebSockets verbinding maakt met de MQTT-server, bekijk dan deze repository: https://github.com/stackhero-io/mqttWebSocketGettingStarted. U kunt het bestand src/index.html aanpassen met de url, username en password van uw eigen server.
MQTT WebSocket-voorbeeld
Controleer voordat u deze setup probeert of WebSocket-ondersteuning is ingeschakeld in uw Stackhero-dashboard. Zo weet u zeker dat browsergebaseerde verbindingen probleemloos werken.