ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

Help / WLanguage / WLanguage functions / Communication / MQTT functions
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Permet de s'abonner à une notification MQTT.
Remarque : Cet abonnement peut être arrêté grâce aux fonctions MQTTDésabonne et MQTTDésabonneTout.
Exemple
gMqttSession est un mqttSession
...
lbRésultat est un booléen
lbRésultat = MQTTAbonne(gMqttSession, "sensors/sensor1/temprature1", mqttQualitéAuMoinsUneFois, ...
Proc_MQTTAbonne)
 
// La procédure spécifiée dans la fonction MQTTAbonne doit être une procédure globale du projet
PROCÉDURE Proc_MQTTAbonne(pMqttSession est un mqttSession, ...
Topic est une chaîne, unbuffer est un Buffer)
Trace("Abonnement")
FIN
Syntaxe
<Résultat> = MQTTAbonne(<Session MQTT> , <Sujet> , <Qualité> , <Procédure>)
<Résultat> : Booléen
  • Vrai si l'abonnement est mis en place,
  • Faux dans le cas contraire.
<Session MQTT> : Variable de type mqttSession
Nom de la variable mqttSession correspondant à la session MQTT à manipuler.
<Sujet> : Chaîne de caractères
Sujet pour lequel l'abonnement est demandé.
<Qualité> : Constante de type Entier
Qualité demandée :
mqttQualitéAuMoinsUneFoisLe message sera délivré au moins une fois. Le client transmettra le message plusieurs fois s'il le faut jusqu'à ce que le serveur (Broker) lui confirme que le message a été transmis sur le réseau.
mqttQualitéAuPlusUneFoisLe message sera délivré tout au plus une fois. Le message n'est pas stocké. Il est envoyé sans garantie de réception. Le serveur MQTT (broker) n'informe pas l'expéditeur qu'il a reçu le message. Le message peut être perdu si le client se déconnecte ou si le serveur s'arrête.
mqttQualitéExactementUneFoisLe message sera obligatoirement sauvegardé par l'émetteur. Il sera transmis tant que le récepteur ne confirme pas son envoi sur le réseau. L'émetteur utilise une phase de reconnaissance sophistiquée avec le serveur (broker) pour éviter une duplication des messages. Ce mode est plus lent mais plus sûr.
<Procédure> : Nom de procédure WLangage
Nom de la procédure WLangage (également nommée "callback") exécutée à chaque nouvelle notification.
Il doit s'agir d'une procédure globale au projet : l'utilisation d'une procédure interne n'est pas autorisée. Cette procédure est de la forme :
PROCEDURE <Nom de la procédure>(<Connexion> est un mqttSession,
<Sujet> est une chaîne, <Message> est un Buffer)
où :
  • <Connexion> correspond à une variable mqttSession contenant les caractéristiques de la session MQTT.
  • <Sujet> correspond au sujet du message.
  • <Message> correspond au contenu du message.
Classification Métier / UI : Code métier
Composante : wd290com.dll
Minimum version required
  • Version 22
Comments
La procédure callback doit être une procédure globale du projet
Afin de permettre l'appel automatique de la procédure, il doit d'agir d'une procédure globale du projet, et non pas d'une procédure interne :
https://faq.pcsoft.fr/19345-mqttabonne_callback-read.awp
Guillaume BAYLE
14 Nov. 2019
Précision...
Pour que cela fonctionne il faut que le code au dessus soit dans une procédure avec comme automatisme de la procédure en Thread. Si vous mettez directement le code dans un bouton cela ne fonctionnera pas vous serez abonné mais aucune valeur ne sera tracé !
Dimitri G
01 Aug. 2019

Last update: 05/25/2022

Send a report | Local help