Add labs
This commit is contained in:
7
02-mqtt5/lab01/docker-compose.yml
Normal file
7
02-mqtt5/lab01/docker-compose.yml
Normal file
@ -0,0 +1,7 @@
|
||||
services:
|
||||
mosquitto:
|
||||
image: eclipse-mosquitto
|
||||
ports:
|
||||
- "1883:1883"
|
||||
volumes:
|
||||
- ./mosquitto.conf:/mosquitto/config/mosquitto.conf:ro
|
||||
46
02-mqtt5/lab01/lab.txt
Normal file
46
02-mqtt5/lab01/lab.txt
Normal file
@ -0,0 +1,46 @@
|
||||
= Session Expiration
|
||||
|
||||
Subscriben Sie mit `mosquitto_sub` als MQTT 5 Client (`-V 5`) mit fester ID, QoS 1, ohne Clean-Session und 10 Sekunden Expiration (`-x 10`) das Topic `demo/session`
|
||||
|
||||
Beenden Sie den Subscriber, beobachten Sie die mosquitto Logausgabe.
|
||||
("p"rotokoll version, "c"lean session, "k"eepalive)
|
||||
|
||||
$ docker run --rm -it --net host eclipse-mosquitto \
|
||||
mosquitto_sub --topic demo/session -V 5 --id demo --qos 1 --disable-clean-session -x 10
|
||||
|
||||
CTRL-C
|
||||
|
||||
Publishen Sie eine QoS 1 Nachricht auf das Topic.
|
||||
|
||||
$ docker run --rm -it --net host eclipse-mosquitto \
|
||||
mosquitto_pub --topic "demo/session" --qos 1 --message "Demo message"
|
||||
|
||||
Starten Sie den Subscriber neu
|
||||
|
||||
$ docker run --rm -it --net host eclipse-mosquitto \
|
||||
mosquitto_sub --topic demo/session -V 5 --id demo --qos 1 --disable-clean-session -x 10
|
||||
|
||||
|
||||
|
||||
Wiederholen Sie den Vorgang, warten jedoch weniger als 10 Sekunden.
|
||||
|
||||
|
||||
$ docker run --rm -it --net host eclipse-mosquitto \
|
||||
mosquitto_sub --topic demo/session -V 5 --id demo --qos 1 --disable-clean-session -x 10
|
||||
|
||||
CTRL-C
|
||||
|
||||
$ docker run --rm -it --net host eclipse-mosquitto \
|
||||
mosquitto_pub --topic "demo/session" --qos 1 --message "Demo message"
|
||||
|
||||
$ docker run --rm -it --net host eclipse-mosquitto \
|
||||
mosquitto_sub --topic demo/session -V 5 --id demo --qos 1 --disable-clean-session -x 10
|
||||
|
||||
|
||||
|
||||
Bonus: Untersuchen Sie mittels Netzwerkanalyse, wie `mosquitto_sub` sich verhält,
|
||||
wenn keine Expiration Time, aber `--disable-clean-session` gesetzt ist.
|
||||
|
||||
$ sudo tshark -s 1500 -i lo -n -x -O mqtt port 1883
|
||||
$ docker run --rm -it --net host eclipse-mosquitto \
|
||||
mosquitto_sub --topic demo --id demo --qos 1 -V 5 --disable-clean-session
|
||||
4
02-mqtt5/lab01/mosquitto.conf
Normal file
4
02-mqtt5/lab01/mosquitto.conf
Normal file
@ -0,0 +1,4 @@
|
||||
listener 1883
|
||||
allow_anonymous true
|
||||
|
||||
# sys_interval 3
|
||||
7
02-mqtt5/lab02/docker-compose.yml
Normal file
7
02-mqtt5/lab02/docker-compose.yml
Normal file
@ -0,0 +1,7 @@
|
||||
services:
|
||||
mosquitto:
|
||||
image: eclipse-mosquitto
|
||||
ports:
|
||||
- "1883:1883"
|
||||
volumes:
|
||||
- ./mosquitto.conf:/mosquitto/config/mosquitto.conf:ro
|
||||
31
02-mqtt5/lab02/lab.txt
Normal file
31
02-mqtt5/lab02/lab.txt
Normal file
@ -0,0 +1,31 @@
|
||||
= Message Expiration
|
||||
|
||||
Aufbau einer QoS 1 Session durch Subscriber und Verbindungsabbau.
|
||||
|
||||
$ docker run --rm -it --net host eclipse-mosquitto \
|
||||
mosquitto_sub --topic demo --id demo --qos 1 -V 5 --disable-clean-session --debug
|
||||
|
||||
CTRL-C
|
||||
|
||||
Versand einer Nachricht mit Expiration durch MQTT 5 Publisher und
|
||||
Fortsetzung der Session durch Client innerhalb und nach der Zeitspanne.
|
||||
|
||||
$ docker run --rm -it --net host eclipse-mosquitto \
|
||||
mosquitto_pub --topic "demo" --qos 1 -V 5 \
|
||||
--property publish message-expiry-interval 10 --message "Demo message"
|
||||
|
||||
$ sleep 6; docker run --rm -it --net host eclipse-mosquitto \
|
||||
mosquitto_sub --topic demo --id demo --qos 1 -V 5 --disable-clean-session --debug
|
||||
|
||||
|
||||
Was passiert, wenn der Subscriber MQTT 3.x verwendet?
|
||||
|
||||
$ docker run --rm -it --net host eclipse-mosquitto \
|
||||
mosquitto_sub --topic demo --id demo --qos 1 --disable-clean-session --debug
|
||||
|
||||
$ docker run --rm -it --net host eclipse-mosquitto \
|
||||
mosquitto_pub --topic "demo" --qos 1 -V 5 \
|
||||
--property publish message-expiry-interval 10 --message "Demo message"
|
||||
|
||||
$ docker run --rm -it --net host eclipse-mosquitto \
|
||||
mosquitto_sub --topic demo --id demo --qos 1 --disable-clean-session --debug
|
||||
4
02-mqtt5/lab02/mosquitto.conf
Normal file
4
02-mqtt5/lab02/mosquitto.conf
Normal file
@ -0,0 +1,4 @@
|
||||
listener 1883
|
||||
allow_anonymous true
|
||||
|
||||
# sys_interval 3
|
||||
7
02-mqtt5/lab03/docker-compose.yml
Normal file
7
02-mqtt5/lab03/docker-compose.yml
Normal file
@ -0,0 +1,7 @@
|
||||
services:
|
||||
mosquitto:
|
||||
image: eclipse-mosquitto
|
||||
ports:
|
||||
- "1883:1883"
|
||||
volumes:
|
||||
- ./mosquitto.conf:/mosquitto/config/mosquitto.conf:ro
|
||||
13
02-mqtt5/lab03/lab.txt
Normal file
13
02-mqtt5/lab03/lab.txt
Normal file
@ -0,0 +1,13 @@
|
||||
= Reason Codes
|
||||
|
||||
Provozieren Sie einen Fehler durch Senden einer QoS 1 Nachricht auf ein
|
||||
Broker Topic, z.B. `$SYS/demo`.
|
||||
|
||||
$ docker run --rm -it --net host eclipse-mosquitto \
|
||||
mosquitto_pub -V 5 --id demo --qos 1 --topic '$SYS/demo' --message hi --debug
|
||||
|
||||
|
||||
Vergleichen Sie das Verhalten bei MQTT 5 vs. 3.x
|
||||
|
||||
$ docker run --rm -it --net host eclipse-mosquitto \
|
||||
mosquitto_pub --id demo --qos 1 --topic '$SYS/demo' --message hi --debug
|
||||
4
02-mqtt5/lab03/mosquitto.conf
Normal file
4
02-mqtt5/lab03/mosquitto.conf
Normal file
@ -0,0 +1,4 @@
|
||||
listener 1883
|
||||
allow_anonymous true
|
||||
|
||||
# sys_interval 3
|
||||
7
02-mqtt5/lab04/docker-compose.yml
Normal file
7
02-mqtt5/lab04/docker-compose.yml
Normal file
@ -0,0 +1,7 @@
|
||||
services:
|
||||
mosquitto:
|
||||
image: eclipse-mosquitto
|
||||
ports:
|
||||
- "1883:1883"
|
||||
volumes:
|
||||
- ./mosquitto.conf:/mosquitto/config/mosquitto.conf:ro
|
||||
23
02-mqtt5/lab04/lab.txt
Normal file
23
02-mqtt5/lab04/lab.txt
Normal file
@ -0,0 +1,23 @@
|
||||
= Response-Topic
|
||||
|
||||
Lassen Sie sich von `mosquitto_rr` die Hilfe ausgeben.
|
||||
|
||||
$ docker run --rm -it --net host eclipse-mosquitto \
|
||||
mosquitto_rr --help
|
||||
|
||||
|
||||
Topic `services/temp_query` soll für Anfragen dienen.
|
||||
|
||||
$ docker run --rm -it --net host eclipse-mosquitto \
|
||||
mosquitto_sub -V 5 --topic services/temp_query --debug
|
||||
|
||||
|
||||
Antwort soll auf das jeweils mitgeteilte Topic gesendet werden, 20 Sekunden Timeout
|
||||
|
||||
|
||||
$ docker run --rm -it --init --net host eclipse-mosquitto \
|
||||
mosquitto_rr --id demo --topic services/temp_query \
|
||||
--message celsius -e reply/demo -W 20 --debug
|
||||
|
||||
$ docker run --rm -it --net host eclipse-mosquitto \
|
||||
mosquitto_pub -V 5 --topic reply/demo --message "19.3"
|
||||
4
02-mqtt5/lab04/mosquitto.conf
Normal file
4
02-mqtt5/lab04/mosquitto.conf
Normal file
@ -0,0 +1,4 @@
|
||||
listener 1883
|
||||
allow_anonymous true
|
||||
|
||||
# sys_interval 3
|
||||
7
02-mqtt5/lab05/docker-compose.yml
Normal file
7
02-mqtt5/lab05/docker-compose.yml
Normal file
@ -0,0 +1,7 @@
|
||||
services:
|
||||
mosquitto:
|
||||
image: eclipse-mosquitto
|
||||
ports:
|
||||
- "1883:1883"
|
||||
volumes:
|
||||
- ./mosquitto.conf:/mosquitto/config/mosquitto.conf:ro
|
||||
21
02-mqtt5/lab05/lab.txt
Normal file
21
02-mqtt5/lab05/lab.txt
Normal file
@ -0,0 +1,21 @@
|
||||
= Shared Subscription
|
||||
|
||||
Erstellen Sie einen Publisher, der alle 2 Sekunden nach `output/demo` Werte sendet.
|
||||
|
||||
$ docker run --rm -it --init --net host eclipse-mosquitto \
|
||||
mosquitto_pub -V 5 --topic output/demo --repeat 100 --repeat-delay 2 --message 'input'
|
||||
|
||||
Verwenden Sie zunächst eine Gruppe aus zwei Konsumenten.
|
||||
|
||||
$ docker run --rm -it --net host eclipse-mosquitto \
|
||||
mosquitto_sub --id consumer-1 --topic '$share/group1/output/demo'
|
||||
|
||||
|
||||
$ docker run --rm -it --net host eclipse-mosquitto \
|
||||
mosquitto_sub --id consumer-2 --topic '$share/group1/output/demo'
|
||||
|
||||
|
||||
Ergänzen Sie eine zweite Gruppe mit einem Konsumenten
|
||||
|
||||
$ docker run --rm -it --net host eclipse-mosquitto \
|
||||
mosquitto_sub --id consumer-3 --topic '$share/group2/output/demo'
|
||||
4
02-mqtt5/lab05/mosquitto.conf
Normal file
4
02-mqtt5/lab05/mosquitto.conf
Normal file
@ -0,0 +1,4 @@
|
||||
listener 1883
|
||||
allow_anonymous true
|
||||
|
||||
# sys_interval 3
|
||||
Reference in New Issue
Block a user