J'utilise mosquitto MQ avec la bibliothèque java eclipse paho. Je voudrais vérifier si le sujet existe ou non avant de m'abonner à un sujet et de recevoir le message. Comment je fais ça ?

0
ajay dinakaran 5 avril 2017 à 07:37

2 réponses

Meilleure réponse

La réponse courte est que vous ne le faites pas.

Les sujets ne sont pas quelque chose qui existe vraiment jusqu'au moment où un message est publié.

Un abonné indique au courtier les sujets qui l'intéressent et si un éditeur publie un message sur l'un de ces sujets, le message sera alors transmis à cet abonné (les acls le permettent).

Des abonnements peuvent être effectués à des sujets contenant des caractères génériques, ce qui peut vous aider si vous souhaitez faire correspondre plus qu'un seul sujet. Il y a 2 caractères joker.

  • + qui correspond à un seul élément dans un sujet. par exemple. foo / + / bar correspondra à foo / 1 / bar et foo / something / bar

  • # qui correspond à plusieurs segments mais uniquement à la fin d'un sujet. par exemple. / foo / # correspondra à / foo / 1 et foo / bar / 1 / quelque chose. Vous ne pouvez pas le placer n'importe où mais à la fin, donc foo / # / bar ne fonctionnera pas

Les $SYS sujets mentionnés par @ ΦXocę 웃 Пepeúpa ツ ne fournissent que des statistiques sur le courtier et non sur les sujets existants.

3
hardillb 5 avril 2017 à 08:19

Il n'y a rien de tel que parcourir les sujets dans le courtier ...

Le mieux que vous puissiez obtenir est de vous abonner à $ sys mais cela dépendra de la configuration de certains courtiers pour vous le permettre

La documentation sur les informations de $ Sys est:

  • $ SYS / courtier / chargement / octets / reçu : Le nombre total d'octets reçus depuis le démarrage du courtier.

  • $ SYS / courtier / chargement / octets / envoyé : Le nombre total d'octets envoyés depuis le démarrage du courtier.

  • $ SYS / courtier / clients / connecté : Le nombre de clients actuellement connectés

  • $ SYS / courtier / clients / déconnecté : Le nombre total de clients persistants (avec la session de nettoyage désactivée) qui sont enregistrés chez le courtier mais qui sont actuellement déconnectés.

  • $ SYS / courtier / clients / maximum : Le nombre maximum de clients actifs qui ont été connectés au courtier. Cela n'est calculé que lorsque l'arborescence des rubriques $ SYS est mise à jour, de sorte que les connexions client de courte durée peuvent ne pas être comptées.

  • $ SYS / courtier / clients / total : Le nombre total de clients connectés et déconnectés avec une session persistante actuellement connectée et enregistrée sur le courtier.

  • $ SYS / courtier / messages / reçus : Le nombre total de messages de tout type reçus depuis le démarrage du courtier.

  • $ SYS / courtier / messages / envoyés : Le nombre total de messages de tout type envoyés depuis le démarrage du courtier.

  • $ SYS / courtier / messages / publier / supprimé : Le nombre total de messages de publication qui ont été supprimés en raison des limites en vol / en file d'attente.

  • $ SYS / courtier / messages / publier / reçu : Le nombre total de messages PUBLISH reçus depuis le démarrage du courtier.

  • $ SYS / courtier / messages / publier / envoyé : Le nombre total de messages PUBLISH envoyés depuis le démarrage du courtier.

  • $ SYS / courtier / messages / retenu / nombre : Le nombre total de messages conservés actifs sur le courtier.

  • $ SYS / courtier / abonnements / nombre : Le nombre total d'abonnements actifs sur le courtier.

  • $ SYS / courtier / heure : L'heure actuelle sur le serveur.

  • $ SYS / courtier / temps de disponibilité : Durée en secondes pendant laquelle le courtier est en ligne.

  • $ SyS / courtier / version : La version du courtier. Statique.

1
ΦXocę 웃 Пepeúpa ツ 5 avril 2017 à 06:42