TsgcWSPClient_MQTT › Methods › Subscribe
Abonne le client à un ou plusieurs filtres de sujet au QoS demandé.
function Subscribe(const aTopic: String; aQoS: TmqttQoS = mtqsAtMostOnce; const aSubscribeProperties: TsgcWSMQTTSubscribe_Properties = nil) : Word;
| Nom | Type | Description |
|---|---|---|
aTopic | const String
| Filtre de sujet auquel s'abonner ; les caractères génériques à niveau unique (+) et à plusieurs niveaux (#) sont pris en charge. |
aQoS
| TmqttQoS | QoS 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. |
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)
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.
MQTT.Subscribe('sensors/+/temperature', mtqsAtLeastOnce);
function Subscribe(aTopics: TsgcWSTopics): Word;
| Nom | Type | Description |
|---|---|---|
aTopics | TsgcWSTopics
| Collection de filtres de sujets avec des paramètres QoS individuels, envoyée sous forme d'un seul paquet SUBSCRIBE. |
Identifiant de paquet du paquet SUBSCRIBE groupé ; utilisé pour corréler tous les octrois reçus via OnMQTTSubscribe. (Word)
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.
oTopics := TsgcWSTopics.Create;
try
oTopics.Add('sensors/#', mtqsAtLeastOnce);
oTopics.Add('alerts/#', mtqsExactlyOnce);
MQTT.Subscribe(oTopics);
finally
oTopics.Free;
end;