TsgcWSPClient_MQTTMethods › Subscribe

Subscribe Méthode

Abonne le client à un ou plusieurs filtres de sujet au QoS demandé.

Surcharges

Surcharge 1

Syntaxe

function Subscribe(const aTopic: String; aQoS: TmqttQoS = mtqsAtMostOnce; const aSubscribeProperties: TsgcWSMQTTSubscribe_Properties = nil) : Word;

Paramètres

NomTypeDescription
aTopicconst String Filtre de sujet auquel s'abonner ; les caractères génériques à niveau unique (+) et à plusieurs niveaux (#) sont pris en charge.
aQoS TmqttQoSQoS maximum que le broker doit fournir pour les messages correspondants. Vaut par défaut mtqsAtMostOnce.
aSubscribeProperties const TsgcWSMQTTSubscribe_Properties Propriétés MQTT 5.0 optionnelles telles que l'identifiant d'abonnement, l'indicateur No Local, Retain As Published ou Retain Handling. Passez nil pour utiliser les valeurs par défaut.

Valeur de retour

Identifiant de paquet du paquet SUBSCRIBE. Mettez-le en corrélation avec la confirmation signalée via OnMQTTSubscribe pour connaître la QoS effectivement attribuée par le courtier. (Word)

Remarques

Surcharge mono-sujet, la forme la plus courante. Les messages entrants sont remontés via OnMQTTPublish (ou OnMQTTPublishEx pour MQTT 5.0). Le courtier peut rétrograder la QoS s'il ne prend pas en charge le niveau demandé ou si des règles ACL s'appliquent.

Exemple

MQTT.Subscribe('sensors/+/temperature', mtqsAtLeastOnce);

Surcharge 2

Syntaxe

function Subscribe(aTopics: TsgcWSTopics): Word;

Paramètres

NomTypeDescription
aTopicsTsgcWSTopics Collection de filtres de sujets avec des paramètres QoS individuels, envoyée sous forme d'un seul paquet SUBSCRIBE.

Valeur de retour

Identifiant de paquet du paquet SUBSCRIBE groupé ; utilisé pour corréler tous les octrois reçus via OnMQTTSubscribe. (Word)

Remarques

Surcharge en lot qui s'abonne à plusieurs filtres en un seul aller-retour. Préférez-la à une boucle d'appels à un seul topic pour réduire le trafic réseau et donner au courtier la possibilité de retourner une liste complète de codes de raison dans un seul SUBACK.

Exemple

oTopics := TsgcWSTopics.Create;
try
  oTopics.Add('sensors/#', mtqsAtLeastOnce);
  oTopics.Add('alerts/#', mtqsExactlyOnce);
  MQTT.Subscribe(oTopics);
finally
  oTopics.Free;
end;

Retour aux méthodes