Änderungen

MQTT

1.981 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 =====Eclipse Mosquitto<br>===
https://mosquitto.org/
 {||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 IDHier 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