TsgcWSPClient_MQTTMetodi › Subscribe

Subscribe Metodo

Sottoscrive il client a uno o più filtri di topic al QoS richiesto.

Overload

Overload 1

Sintassi

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

Parametri

NomeTipoDescrizione
aTopicconst StringFiltro topic a cui sottoscriversi; sono supportati i caratteri jolly a livello singolo (+) e multilivello (#).
aQoSTmqttQoSQoS massimo con cui il broker deve consegnare i messaggi corrispondenti. Il valore predefinito è mtqsAtMostOnce.
aSubscribePropertiesconst TsgcWSMQTTSubscribe_PropertiesProprietà opzionali MQTT 5.0 come Subscription Identifier, flag No Local, Retain As Published o Retain Handling. Passare nil per utilizzare i valori predefiniti.

Valore restituito

Identificatore di pacchetto del pacchetto SUBSCRIBE. Correlarla con la concessione segnalata tramite OnMQTTSubscribe per conoscere il QoS effettivamente assegnato dal broker. (Word)

Note

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.

Esempio

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

Sovraccarico 2

Sintassi

function Subscribe(aTopics: TsgcWSTopics): Word;

Parametri

NomeTipoDescrizione
aTopicsTsgcWSTopicsRaccolta di filtri di topic con impostazioni QoS individuali, inviata come singolo pacchetto SUBSCRIBE.

Valore restituito

Identificatore del pacchetto SUBSCRIBE in batch; utilizzato per correlare tutte le concessioni ricevute tramite OnMQTTSubscribe. (Word)

Note

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.

Esempio

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

Torna ai Metodi