Änderungen

MQTT

1.924 Byte hinzugefügt, 21:12, 25. Feb. 2019
/* ACL (Access Control List) */
http://mqtt.org/<br>MQTT ist folgendes:<br>* Publish-Subscribe-Protokoll, der Client nimmt die Rolle des Publishers und Subscribers ein* Bidirektional und Push-basiert also Ereignisgetrieben* Baut auf TCP auf* Nachrichtenorientiert* Lose gekoppelt* SchlankAlso alles klar!?<br><br>
== Server/Broker ==
|Konfig:
|<code>/etc/mosquitto/mosquitto.conf</code>
|-
|Service:
|<code>sudo service mosquitto restart</code>
|}
 
==== Username and Password Authentication ====
 
Initale Passwortdatei im Verzeichniss /etc/mosquitto erstellen<br>
mosquitto_passwd -c users.txt user1
 
Alle weiteren Benutzer auf diese Weise hinzufügen
mosquitto_passwd -b users.txt user2 password
 
Falls ein Benutzer gelöscht werden soll
mosquitto_passwd -D users.txt userx
 
Dann der mosquitto.config folgende Zeilen hinzufügen
allow_anonymous false
password_file /etc/mosquitto/passwords.txt
 
==== ACL (Access Control List) ====
 
Eine ACL-Datei im Verzeichnis /etc/mosquitto erstellne wie z.B. acl.txt<br>
Diese Datei über die /etc/mosquitto/mosquitto.conf einbinden.<br>
acl_file /etc/mosquitto/acl.txt
 
Es gibt 3 Bereiche die man konfigurieren kann
# General Section
# User Specific Section
# Client or User ID
Hier wird nur der User-Bereich erklärt!
 
user intern
topic readwrite # &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(oder kurz 'topic #')<br>
user extern
topic read #
topic write extern/#
 
Der Benutzer intern darf alles lesen und schreiben während der Benutzer extern zwar alles lesen aber nur in extern/# schreiben darf.
== Client ==
=== Kommandozeile ===
Wenn Mosquitto installiert ist, gibt es einen Commandozeilenclient.<br>
Alle Topics abonnieren:<br>
<code> mosquitto_pub -h localhost -m "ON" -t space/electrolab/switch2 -d</code>
=== Browser ===
Man kann MQTT auch aus dem Browser von einer Webseite aus nutzen.<br>
Es gibt aber ein Problem. MQTT basiert auf TCP, die Sandbox des Browser lässt aber aus sicherheitsgründen keine TCP-Sockets zu.
Die Lösung sind WebSockets. Die müssen erst im Mosquitto configuriert werden.<br>
listener 1884
protocol websockets
Eclipse paho liefert dann die Client-Bibliothek und ein Beispiel<br>
https://github.com/eclipse/paho.mqtt.javascript
=== UI ======= MQTT.fx<br>====
http://mqttfx.jensd.de/
Ein in Java mit der UI-Technologie JavaFX programmierter Client der auf allen Betriebssystemen laufen sollte.
688
Bearbeitungen