PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 2024 → Windev et MQTT : problème de récupération de messages mis en file d'attente
Windev et MQTT : problème de récupération de messages mis en file d'attente
Iniciado por BastienCB, set., 25 2020 12:32 PM - 4 respostas
Publicado em setembro, 25 2020 - 12:32 PM
Bonjour,

J'ai un problème avec les fonctions MQTT de windev avec RabbitMQ.

Je publie des des messages sur un sujet "test" avec un exécutable "serveur".
Je reçois les messages publiés sur un exécutable "client", abonné à ce même sujet "test".

Je parviens bien à récupérer les messages, lorsqu'ils sont publiés et reçus [B]en temps réel[/B], avec un exécutable publiant et l'autre récupérant les messages publiés sur le même sujet.

Par contre, lorsque je déconnecte l'abonné et que je continue de publier, je vois bien les messages qui sont mis en file d'attente dans RabbitMQ, mais lorsque je reconnecte l'abonné, les messages sont dépilés dans RabbitMQ mais jamais lus dans la procédure de CallBack de la fonction MQTTAbonne.

Ma question est donc la suivante : est ce que quelqu'un a déjà réussi à récupérer des messages mis en file d'attente dans MQTT dans une queue donnée ?

On voit ici les 6 messages en file d'attente pour la queue "mqtt-subscription-clientOKqos1"





Les deux queues "client" et "serveur" sur RabbitMQ :





Partie "client" (Exe issu d'un projet de démo MQTT de la LST n°110 Windev) :





Partie "serveur" (Exe issu d'un projet de démo MQTT de la LST n°110 Windev) :





Lorsque je me reconnecte sur l'exe client, les 6 messages stockés sur la queue "mqtt-subscription-clientOKqos1" sont supprimés mais rien ne se passe dans l'exe client (la procédure de CallBack de MQTTAbonne n'est pas appelée).

Merci d'avance.
Publicado em agosto, 12 2021 - 11:49 AM
Salut, Merci pour ce sujet, j'ai actuellement le même problème.
De mon côté j'utilise le brocker LiveObject qui peut aussi mettre en file d'attente les message.
Quand je m'abonne à une file, c'est tout ce qu'elle stock qui est consommé (même si c'est 37 messages),
mais seulement 1 seul de ces messages est affiché.
Avez vous trouvé une solution pour pouvoir lire/afficher les messages en file d'attente ? ou du moins, ne pas les consommer tous d'un coup ? (pour peut-être essayer de contourner en ne vidant qu'un message à la fois).
Merci =)
Membro registado
141 mensagems
Popularité : +5 (5 votes)
Publicado em outubro, 09 2021 - 7:59 PM
Bonjour,

J'ai aussi ce problème... Comme ci ce cas n'était pas traité par Windev.... Et pourtant j'ai cherché.

Si quelqu'un à une réponse à cela, merci de le partager.

Bon Dev

--
Yann Wagner

WHY-GemA sàrl
Membro registado
141 mensagems
Popularité : +5 (5 votes)
Publicado em outubro, 13 2021 - 11:13 AM
Bonjour,


"Les fonctions MQTT implémentent actuellement les possibilités de base du protocole. Je le regrette elles ne permettent donc pas encore l'accès aux messages comme vous le souhaitez.

Une suggestion en ce sens a été transmise à notre équipe Développement, notamment en ajoutant le support du protocole AMQP. J'espère que les implémentations nécessaires pourront être planifiées dans les prochaines versions."

Donc encore une fois, ils ne font pas au bout des choses. Sans récupération des messages émis pendant que le programme Windev tourne, aucune réception de ces messages. Donc le DoS ne vaut rien, pas plus les fonctions MQTT de Windev... (sauf pour faire du "bidouillage IOT". Peut-être en 2025, espérons... Mais pour une utilisation sérieuse, autant oublier...

Bof et bon développement

}:( }:( }:( }:( }:(

--
Yann Wagner

WHY-GemA sàrl
Membro registado
141 mensagems
Popularité : +5 (5 votes)
Publicado em outubro, 13 2021 - 11:22 AM
Rectification....

C'est bien la réponse du ST, auquel j'ai soumis, vous l'aurez compris.

De même, il faut comprendre ....

"Sans récupération des messages émis pendant que le programme Windev NE TOURNE PAS, aucune réception de ces messages."

:o

--
Yann Wagner

WHY-GemA sàrl