MQTT: Unterschied zwischen den Versionen

Aus Hackerspace Ffm
Wechseln zu: Navigation, Suche
(UI)
(Browser)
Zeile 32: Zeile 32:
 
=== Browser ===
 
=== Browser ===
 
Man kann MQTT auch aus dem Browser von einer Webseite aus nutzen.<br>
 
Man kann MQTT auch aus dem Browser von einer Webseite aus nutzen.<br>
Dazu braucht man aber WebSockets und die müssen im Mosquitto configuriert werden.<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
 
  listener 1884
 
  protocol websockets
 
  protocol websockets

Version vom 11. Juli 2018, 22:02 Uhr

http://mqtt.org/
MQTT ist folgendes:

  • 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
  • Schlank

Also alles klar!?

Server/Broker

Eclipse Mosquitto

https://mosquitto.org/

Konfig: /etc/mosquitto/mosquitto.conf
Service: sudo service mosquitto restart

Client

Kommandozeile

Wenn Mosquitto installiert ist, gibt es einen Commandozeilenclient.
Alle Topics abonnieren:
mosquitto_sub -h localhost -d -v -t "#"
Auf das Topic space/electrolab/switch2 die Nachricht "ON" schicken:
mosquitto_pub -h localhost -m "ON" -t space/electrolab/switch2 -d

Browser

Man kann MQTT auch aus dem Browser von einer Webseite aus nutzen.
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.

listener 1884
protocol websockets

Eclipse paho liefert dann die Client-Bibliothek und ein Beispiel
https://github.com/eclipse/paho.mqtt.javascript

UI

MQTT.fx

http://mqttfx.jensd.de/ Ein in Java mit der UI-Technologie JavaFX programmierter Client der auf allen Betriebssystemen laufen sollte.