TsgcWSPClient_MQTTMethods › Subscribe

Subscribe Metoda

Subskrybuje klienta do jednego lub więcej filtrów tematów z żądanym poziomem QoS.

Przeciążenia

Przeciążenie 1

Składnia

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

Parametry

NazwaTypOpis
aTopicconst StringFiltr tematu do subskrybowania; obsługiwane są symbole wieloznaczne: jednopoziomowy (+) i wielopoziomowy (#).
aQoSTmqttQoSMaksymalne QoS, jakie broker powinien dostarczać dla pasujących wiadomości. Domyślnie mtqsAtMostOnce.
aSubscribePropertiesconst TsgcWSMQTTSubscribe_PropertiesOpcjonalne właściwości MQTT 5.0, takie jak Subscription Identifier, flaga No Local, Retain As Published lub Retain Handling. Przekaż nil, aby użyć wartości domyślnych.

Wartość zwracana

Identyfikator pakietu SUBSCRIBE. Należy go skorelować z uprawnieniem zgłoszonym przez OnMQTTSubscribe, aby poznać QoS faktycznie przyznane przez brokera. (Word)

Uwagi

Przeciążenie dla pojedynczego tematu, najczęściej stosowane. Przychodzące wiadomości są przekazywane przez zdarzenie OnMQTTPublish (lub OnMQTTPublishEx dla MQTT 5.0). Broker może obniżyć QoS, jeśli nie obsługuje żądanego poziomu lub obowiązują reguły ACL.

Przykład

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

Przeciążenie 2

Składnia

function Subscribe(aTopics: TsgcWSTopics): Word;

Parametry

NazwaTypOpis
aTopicsTsgcWSTopicsKolekcja filtrów tematów z indywidualnymi ustawieniami QoS, wysyłana jako pojedynczy pakiet SUBSCRIBE.

Wartość zwracana

Identyfikator pakietu wsadowego zlecenia SUBSCRIBE; służy do korelacji wszystkich potwierdzeń odebranych przez OnMQTTSubscribe. (Word)

Uwagi

Przeciążenie wsadowe subskrybujące kilka filtrów w jednym obrocie. Preferowane przed pętlą pojedynczych wywołań per-temat, aby ograniczyć ruch sieciowy i dać brokerowi szansę na zwrócenie pełnej listy kodów przyczyn w jednym SUBACK.

Przykład

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

Powrót do metod