RabbitMQ + Web MQTT

<< Click to Display Table of Contents >>

Navigation:  Linux - Ubuntu 24.04 > RabbitMQ >

RabbitMQ + Web MQTT

Aktivierung - MQTT über WebSockets

Für die Anbindung von WebApplication wird das RabbitMQ Web MQTT Plugin genutzt. Es wird mit RabbitMQ ausgeliefert. Die Anwendungen bauen einen WebSocket auf, abonnieren die gewünschten Kanäle und erhalten dann die Nachrichten. Man beachte, daß man für die MQTT Anbindung einen eigenen Benutzer festlegen sollte. Die Credentials für diesen Benutzer erhält der Client über das Session Objekt. Diese Informationen muß er bei der Anmeldung bei MQTT über WebSockets nutzen.

Man möge beachten, dass man den default_user und default_pass für dieses Plugin auf einen Benutzer setzt, der keine Berechtigungen hat. Da die WebSocket Anbindung durch einen Apache getunnelt wird, erscheinen alle Anmeldungen als "localhost" getrieben - und dadurch hätten automatisch der default_user alle Berechtigungen.

Das Plugin gibt einen WebSocket Endpunkt unter 15675 frei ("ws://127.0.0.1:15675/ws").

Installation des Plugins

 

sudo rabbitmq-plugins enable rabbitmq_web_mqtt

 

Konfiguration des Plugin

Hier die Konfigurationseinträge für das Plugin. Der benutzer "guest" sollte abgeschaltet werden und ein anderer Benutzer genutzt werden.

 

 

web_mqtt.ssl.port       = 15676
web_mqtt.ssl.backlog    = 1024
web_mqtt.ssl.cacertfile = /path/to/ca_certificate.pem
web_mqtt.ssl.certfile   = /path/to/server_certificate.pem
web_mqtt.ssl.keyfile    = /path/to/server_key.pem
# needed when private key has a passphrase
# web_mqtt.ssl.password   = changeme