TsgcWSPClient_MQTT › Metodi › Subscribe
Sottoscrive il client a uno o più filtri di topic al QoS richiesto.
function Subscribe(const aTopic: String; aQoS: TmqttQoS = mtqsAtMostOnce; const aSubscribeProperties: TsgcWSMQTTSubscribe_Properties = nil) : Word;
| Nome | Tipo | Descrizione |
|---|---|---|
aTopic | const String | Filtro topic a cui sottoscriversi; sono supportati i caratteri jolly a livello singolo (+) e multilivello (#). |
aQoS | TmqttQoS | QoS massimo con cui il broker deve consegnare i messaggi corrispondenti. Il valore predefinito è mtqsAtMostOnce. |
aSubscribeProperties | const TsgcWSMQTTSubscribe_Properties | Proprietà opzionali MQTT 5.0 come Subscription Identifier, flag No Local, Retain As Published o Retain Handling. Passare nil per utilizzare i valori predefiniti. |
Identificatore di pacchetto del pacchetto SUBSCRIBE. Correlarla con la concessione segnalata tramite OnMQTTSubscribe per conoscere il QoS effettivamente assegnato dal broker. (Word)
Overload a singolo topic, la forma più comune. I messaggi in entrata vengono esposti tramite OnMQTTPublish (o OnMQTTPublishEx per MQTT 5.0). Il broker può ridurre il QoS se non supporta il livello richiesto o se si applicano regole ACL.
MQTT.Subscribe('sensors/+/temperature', mtqsAtLeastOnce);
function Subscribe(aTopics: TsgcWSTopics): Word;
| Nome | Tipo | Descrizione |
|---|---|---|
aTopics | TsgcWSTopics | Raccolta di filtri di topic con impostazioni QoS individuali, inviata come singolo pacchetto SUBSCRIBE. |
Identificatore del pacchetto SUBSCRIBE in batch; utilizzato per correlare tutte le concessioni ricevute tramite OnMQTTSubscribe. (Word)
Overload batch che sottoscrive a più filtri in un unico round-trip. Preferirlo rispetto a un ciclo di chiamate singole per topic per ridurre il traffico di rete e dare al broker la possibilità di restituire un elenco completo di codici motivo in un singolo SUBACK.
oTopics := TsgcWSTopics.Create;
try
oTopics.Add('sensors/#', mtqsAtLeastOnce);
oTopics.Add('alerts/#', mtqsExactlyOnce);
MQTT.Subscribe(oTopics);
finally
oTopics.Free;
end;