Compare commits
No commits in common. "07bd9dce39131c347d62c3fe13946bd1f720a447" and "2d03497de9bf0abfa47f8964642085473ecf10a6" have entirely different histories.
07bd9dce39
...
2d03497de9
5 changed files with 0 additions and 229 deletions
|
@ -1,98 +0,0 @@
|
||||||
# Standards
|
|
||||||
|
|
||||||
## Introduction
|
|
||||||
|
|
||||||
## MQTT
|
|
||||||
|
|
||||||
Message Queue Telemetry Transport
|
|
||||||
Protocole de transmission de télémesure en machine-to-machine léger.
|
|
||||||
Basé sur des files d'attentes avec un API basé sur le patron de Notification.
|
|
||||||
|
|
||||||
Commande
|
|
||||||
Notification
|
|
||||||
|
|
||||||
- créée en 1999 par IBM et Eurotech.
|
|
||||||
- adopté par OASIS (version actuelle 5.0)
|
|
||||||
|
|
||||||
### Exemple
|
|
||||||
|
|
||||||
```
|
|
||||||
+----------+
|
|
||||||
| Client A |-.
|
|
||||||
+----------+ | +---------------+
|
|
||||||
| | Application X |
|
|
||||||
+----------+ `>+--------+<==>+---------------+
|
|
||||||
| Client B |-->| Broker |
|
|
||||||
+----------+ .>+--------+<==>+---------------+
|
|
||||||
| \ | Application Y |
|
|
||||||
+----------+ | \ +---------------+
|
|
||||||
| Client C |-' \__ abonnement / notification IP
|
|
||||||
+----------+ \__ messages
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
- n Clients (STM32, Aruino, Rapberry Pi)
|
|
||||||
- 1 Broker (en ligne, serveur)
|
|
||||||
- m Appilications (PC, Smartphone)
|
|
||||||
|
|
||||||
### Modèles
|
|
||||||
|
|
||||||
Topic
|
|
||||||
- Des queues parallèlles de messages.
|
|
||||||
- Permet aux clients d'échanger des informations d'une sémantique spécifique.
|
|
||||||
|
|
||||||
Session
|
|
||||||
- Une session qui identifie l'ensemble des topics et la séquence des messages reçus.
|
|
||||||
- Toutes les communications client / serveur se feront par sessions.
|
|
||||||
|
|
||||||
Subscriptions
|
|
||||||
- Contrairement aux sessions, un abonnement attache un client à un topic.
|
|
||||||
|
|
||||||
```
|
|
||||||
clients applications
|
|
||||||
|
|
||||||
+-----------+ +- broker -+ +------------+
|
|
||||||
| | | +--1-->| |
|
|
||||||
| publisher +--1-->| topic 1 | | subscriber |
|
|
||||||
| | | +--4-->| |
|
|
||||||
+-----------+ | topic 2 | +------------+
|
|
||||||
| |
|
|
||||||
+-----------+ | topic 3 | +------------+
|
|
||||||
| +--1-->| | | |
|
|
||||||
| publisher | | topic 4 +--4-->| subscriber |
|
|
||||||
| +--2-->| | ^\ | |
|
|
||||||
+-----------+ ^\ +----------+ \ +------------+
|
|
||||||
\ \_ subscription -> notifications
|
|
||||||
\_ publications
|
|
||||||
```
|
|
||||||
|
|
||||||
### Trame
|
|
||||||
|
|
||||||
```
|
|
||||||
+----+-+-+-+-----------+---------+-----------+
|
|
||||||
| 4 |1|2|1| 8 | C | remaining |
|
|
||||||
+----+-+-+-+-----------+---------+-----------+
|
|
||||||
|Type|D|Q|R| remaining | options | DATA |
|
|
||||||
+----+-+-+-+-----------+---------+-----------+
|
|
||||||
^\^\^\ ^^^^^^^^^\ ^^^^^^^\_ champ d'options
|
|
||||||
\ \ \ \_ taille de DATA
|
|
||||||
\ \ \_ RETAIN
|
|
||||||
\ \__ QoS
|
|
||||||
\___ DUPL
|
|
||||||
```
|
|
||||||
|
|
||||||
- type
|
|
||||||
- 3: publish
|
|
||||||
- .: ...
|
|
||||||
- DUPL : drapeau signifiant que le message est une duplication
|
|
||||||
- QoS : Qualité de service
|
|
||||||
- 0: envoyé
|
|
||||||
- 2: une reception
|
|
||||||
- 3: toute les réceptions
|
|
||||||
-
|
|
||||||
|
|
||||||
## CoAP
|
|
||||||
|
|
||||||
## Comparaisons
|
|
||||||
|
|
||||||
## IoT pour la gestion d'appareils : LwM2M
|
|
|
@ -1,22 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
sudo systemctl start mosquitto.service
|
|
||||||
|
|
||||||
topic='test/topic'
|
|
||||||
|
|
||||||
|
|
||||||
(
|
|
||||||
echo "[mosquitto_sub] listening"
|
|
||||||
mosquitto_sub -v -t $topic
|
|
||||||
) & listener_pid=$!
|
|
||||||
|
|
||||||
(
|
|
||||||
echo "[mosquitto_pub] publishing"
|
|
||||||
mosquitto_pub -t $topic -m 'helloWorld'
|
|
||||||
)
|
|
||||||
|
|
||||||
sleep 1s
|
|
||||||
kill $listener_pid
|
|
||||||
|
|
||||||
|
|
||||||
sudo systemctl stop mosquitto.service
|
|
|
@ -1,27 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
sudo systemctl start mosquitto.service
|
|
||||||
|
|
||||||
topic='maison/is_connecté'
|
|
||||||
|
|
||||||
|
|
||||||
(
|
|
||||||
echo "[application] listening"
|
|
||||||
mosquitto_sub -v -t $topic
|
|
||||||
) & listener_pid=$!
|
|
||||||
|
|
||||||
(
|
|
||||||
echo "[maison] up"
|
|
||||||
while true
|
|
||||||
do
|
|
||||||
echo "[maison] publishing"
|
|
||||||
mosquitto_pub -t $topic -m 'oui'
|
|
||||||
sleep 1s
|
|
||||||
done
|
|
||||||
) &
|
|
||||||
|
|
||||||
sleep 5s
|
|
||||||
kill $listener_pid
|
|
||||||
|
|
||||||
|
|
||||||
sudo systemctl start mosquitto.service
|
|
|
@ -1,36 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
sudo systemctl start mosquitto.service
|
|
||||||
|
|
||||||
topic='test/topic'
|
|
||||||
|
|
||||||
|
|
||||||
(
|
|
||||||
echo "[mosquitto_pub] publishing (no retain)"
|
|
||||||
mosquitto_pub -t $topic -m 'helloWorld'
|
|
||||||
)
|
|
||||||
|
|
||||||
(
|
|
||||||
echo "[mosquitto_sub] listening"
|
|
||||||
mosquitto_sub -v -t $topic
|
|
||||||
) & listener_pid=$!
|
|
||||||
|
|
||||||
sleep 1s
|
|
||||||
kill $listener_pid
|
|
||||||
|
|
||||||
|
|
||||||
(
|
|
||||||
echo "[mosquitto_pub] publishing (retain set)"
|
|
||||||
mosquitto_pub -t $topic -m 'helloWorld' -r
|
|
||||||
)
|
|
||||||
|
|
||||||
(
|
|
||||||
echo "[mosquitto_sub] listening"
|
|
||||||
mosquitto_sub -v -t $topic
|
|
||||||
) & listener_pid=$!
|
|
||||||
|
|
||||||
sleep 1s
|
|
||||||
kill $listener_pid
|
|
||||||
|
|
||||||
|
|
||||||
sudo systemctl stop mosquitto.service
|
|
|
@ -1,46 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
sudo systemctl start mosquitto.service
|
|
||||||
|
|
||||||
topic='test/topic'
|
|
||||||
|
|
||||||
|
|
||||||
function prefix() {
|
|
||||||
while read line
|
|
||||||
do echo "$@" "$line"
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
(
|
|
||||||
echo "[mosquitto_sub] listening (qos=0)"
|
|
||||||
mosquitto_sub -v -t $topic -q 0 | prefix "(qos=0)"
|
|
||||||
) & listener_pid=$!
|
|
||||||
|
|
||||||
(
|
|
||||||
echo "[mosquitto_sub] listening (qos=1)"
|
|
||||||
mosquitto_sub -v -t $topic -q 1 | prefix "(qos=1)"
|
|
||||||
) & listener_pid="$listener_pid $!"
|
|
||||||
|
|
||||||
(
|
|
||||||
echo "[mosquitto_sub] listening (qos=2)"
|
|
||||||
mosquitto_sub -v -t $topic -q 2 | prefix "(qos=2)"
|
|
||||||
) & listener_pid="$listener_pid $!"
|
|
||||||
|
|
||||||
|
|
||||||
(
|
|
||||||
echo "[mosquitto_pub] publishing (qos=0)"
|
|
||||||
mosquitto_pub -t $topic -m "message (qos=0)" -q 0
|
|
||||||
|
|
||||||
echo "[mosquitto_pub] publishing (qos=1)"
|
|
||||||
mosquitto_pub -t $topic -m "message (qos=1)" -q 1
|
|
||||||
|
|
||||||
echo "[mosquitto_pub] publishing (qos=2)"
|
|
||||||
mosquitto_pub -t $topic -m "message (qos=2)" -q 2
|
|
||||||
)
|
|
||||||
|
|
||||||
sleep 1s
|
|
||||||
kill $listener_pid
|
|
||||||
|
|
||||||
|
|
||||||
sudo systemctl stop mosquitto.service
|
|
Loading…
Add table
Add a link
Reference in a new issue