eMQTT5 est un client MQTT v5.0 qui vise une faible utilisation des ressources pour les systèmes embarqués.
Il est fourni avec des exemples d'outils utiles qui vous permettront de vous connecter à un courtier MQTT v5.0, de vous abonner et de publier des messages, et d'analyser les paquets du réseau pour en comprendre la signification.
Comme d'habitude avec un dépôt Git, vous devrez d'abord le cloner :
$ git clone https://github.com/X-Ryl669/eMQTT5.git
Ensuite, vous le construirez. Vous aurez besoin d'installer cmake (veuillez vous référer à votre distribution pour obtenir cmake). La version minimale requise de cmake est la 3.7.
$ cd eMQTT5
$ mkdir build
$ cd build
$ cmake ..
Si vous avez ccmake, vous pouvez obtenir un menu pour activer/désactiver des fonctionnalités de la bibliothèque (remplacez la dernière ligne par ccmake ..
)
Ensuite, vous construirez tous les outils de cette façon :
$ make
Le MQTTc est un exemple de client utilisant la bibliothèque fournie. Il est construit automatiquement lorsque vous construisez le logiciel. Vous l'appellerez ainsi :
$ ./tests/MQTTc
Usage is: ./MQTTc [options]
Options:
--help or -h Get this help message
--server or -s arg The server URL (for example 'mqtt.mine.com:1883')
--username or -u arg The username to use
--password or -pw arg The password to use
--clientid or -c arg The client identifier to use
--keepalive or -k arg The client keep alive time
--publish or -pub arg Publish on the topic the given message
--retain or -r Retain published message
--qos or -q arg Quality of service for publishing or subscribing
--subscribe or -sub arg The subscription topic
--der or -d arg Expected broker certificate in DER format
--verbose or -v Dump communication
La connexion à un courtier pour s'abonner à un sujet whatever
se fait de cette manière :
$ ./tests/MQTTc -s demo.mqtt.com -u me -pw secret -sub whatever
Connected to mqtt://demo.mqtt.com
Subscribed to whatever
Waiting for messages...
Connexion à un courtier pour publier un message à whatever
(essayez dans un nouveau terminal) :
$ ./tests/MQTTc -s demo.mqtt.com -u me -pw secret -pub whatever "My message"
Connected to mqtt://demo.mqtt.com
Published My message to whatever
Le premier terminal affichera :
Msg received: (8F4C)
Topic: whatever
Payload: My message
MQTTParsePacket est un outil utilisé pour analyser les paquets réseaux reçus/envoyés. Il peut être utile pour déboguer un problème de communication avec un courtier ou pour garantir la validité de la réponse du courtier. Vous pouvez l'utiliser de cette manière :
$ # Give it the raw bytes from network communication and it'll dump what it means
$ ./MQTTParsePacket 30 1E 00 18 73 74 61 74 75 73 2F 59 4F 4C 54 79 79 76 75 57 58 50 5A 2F 6C 6F 67 73 00 5B 31 5D
Detected PUBLISH packet
with size: 32
PUBLISH control packet (rlength: 30)
Header: (type PUBLISH, retain 0, QoS 0, dup 0)
PUBLISH packet (id 0x0000): Str (24 bytes): status/YOLTyyvuWXPZ/logs
Properties with length VBInt: 0
Payload (length: 3)