Node-RED: MQTT-server
Hoe Node-RED te verbinden met 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-service van Stackhero bevat een ingebouwde MQTT-server, ontworpen voor naadloze integratie met IoT-apparaten via veilige en betrouwbare communicatiekanalen.
Om de MQTT-server in te schakelen, navigeert u naar het Stackhero-dashboard, zoekt u uw Node-RED-service en activeert u de optie "MQTT Server" in de serviceconfiguratie-instellingen.
Zodra geactiveerd, kunnen verbindingen met de MQTT-server worden gemaakt via poort 8883, waarbij TLS-encryptie zorgt voor veilige communicatie.
Eenvoudig voorbeeld: Node-RED gebruiken met de MQTT-server
Om u op weg te helpen, overweeg het volgende voorbeeld dat laat zien hoe u Node-RED met de MQTT-server verbindt. Dit voorbeeld omvat het verzenden van een bericht naar een onderwerp en het ontvangen van berichten ervan. U kunt het flowvoorbeeld downloaden en importeren in uw Node-RED-instantie via het "Import"-menu.
Eenvoudig voorbeeld van het verbinden van MQTT met Node-RED
waarschuwing Als de MQTT-nodes een "connecting"-status blijven tonen, controleer dan of de
MQTT authentication-flow niet is verwijderd. Indien nodig, download het hier: mqttAuthenticationFlow.json. Importeer het in uw Node-RED-instantie, configureer deUsers-node door wachtwoorden te bewerken en verwijder opmerkingen indien nodig.
Authenticatie van MQTT-gebruikers in Node-RED
Gebruikersauthenticatie wordt beheerd via een speciale flow in Node-RED. U kunt de "MQTT Authentication"-flow rechtstreeks openen vanuit het Node-RED-beheerpaneel.
MQTT-authenticatieflow
Binnen de authenticatieflow lokaliseert u de Users-sjabloonnode. Deze node bevat een array voor het definiëren van gebruikersreferenties. U kunt zoveel gebruikers toevoegen als nodig is voor uw configuratie.
Opmerking: De
node-red-gebruiker is cruciaal voor de verbinding van Node-RED met de MQTT-server. Zorg ervoor dat deze gebruiker in de configuratie blijft.
MQTT-gebruikersnode
Verbinden met MQTT via WebSockets
U kunt verbinding maken met de Mosquitto MQTT-server met behulp van het MQTT-protocol of WebSockets.
Hoewel het MQTT-protocol lichtgewicht is en ideaal voor IoT-apparaten, wordt het niet direct ondersteund in webbrowsers. Om deze kloof te overbruggen, encapsuleert u MQTT-verkeer binnen het WebSocket-protocol, dat naadloos werkt met de diensten van Stackhero.
Om WebSocket-connectiviteit in te schakelen, activeert u de optie "WebSocket Support" binnen het Stackhero-dashboard. Configureer vervolgens uw client met de server-URL wss://XXXXX.stackhero-network.com:443/mqtt, waarbij u mqtts://XXXXX.stackhero-network.com vervangt door de juiste WebSocket-URL.
Een MQTT-bibliotheek kiezen
Voor ontwikkelingsdoeleinden raden we de "MQTT.js"-bibliotheek aan. Deze robuuste JavaScript-bibliotheek is compatibel met zowel Node.js- als browseromgevingen. U kunt het verder verkennen op zijn officiële repository.
Browser-naar-MQTT-verbinding voorbeeld via WebSockets
Voor begeleiding bij het tot stand brengen van een browsergebaseerde verbinding met de MQTT-server via WebSockets, raadpleeg deze repository: https://github.com/stackhero-io/mqttWebSocketGettingStarted. U kunt het src/index.html-bestand aanpassen om de url, username en password van uw server in te voeren voor uw specifieke configuratie.
MQTT WebSocket-voorbeeld
Zorg ervoor dat WebSocket-ondersteuning is ingeschakeld in het Stackhero-dashboard om deze configuratie naar behoren te laten functioneren.