TsgcWSPClient_MQTTMethoden › Subscribe

Subscribe Methode

Abonniert den Client für einen oder mehrere Topic-Filter mit der angeforderten QoS.

Überladungen

Overload 1

Syntax

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

Parameter

NameTypBeschreibung
aTopicconst StringTopic-Filter, der abonniert werden soll; einstufige (+) und mehrstufige (#) Platzhalter werden unterstützt.
aQoSTmqttQoSMaximales QoS, das der Broker für übereinstimmende Nachrichten liefern soll. Standardwert mtqsAtMostOnce.
aSubscribePropertiesconst TsgcWSMQTTSubscribe_PropertiesOptionale MQTT-5.0-Eigenschaften wie Subscription Identifier, No-Local-Flag, Retain As Published oder Retain Handling. Übergeben Sie nil, um die Standardwerte zu verwenden.

Rückgabewert

Paketkennung des SUBSCRIBE-Pakets. Korrelieren Sie sie mit dem über OnMQTTSubscribe gemeldeten Grant, um die QoS zu erfahren, die der Broker tatsächlich zugewiesen hat. (Word)

Hinweise

Einzel-Topic-Overload, die häufigste Form. Eingehende Nachrichten werden über OnMQTTPublish (oder OnMQTTPublishEx für MQTT 5.0) bereitgestellt. Der Broker kann die QoS herabstufen, wenn er die angeforderte Stufe nicht unterstützt oder wenn ACL-Regeln gelten.

Beispiel

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

Überladung 2

Syntax

function Subscribe(aTopics: TsgcWSTopics): Word;

Parameter

NameTypBeschreibung
aTopicsTsgcWSTopicsSammlung von Topic-Filtern mit individuellen QoS-Einstellungen, gesendet als einzelnes SUBSCRIBE-Paket.

Rückgabewert

Paketbezeichner des gebündelten SUBSCRIBE-Pakets; wird verwendet, um alle über OnMQTTSubscribe empfangenen Berechtigungen zu korrelieren. (Word)

Hinweise

Batch-Überladung, die mehrere Filter in einem einzigen Roundtrip abonniert. Bevorzugen Sie sie gegenüber einer Schleife von Einzel-Topic-Aufrufen, um den Netzwerkverkehr zu reduzieren und dem Broker die Möglichkeit zu geben, eine vollständige Reason-Code-Liste in einem einzigen SUBACK zurückzugeben.

Beispiel

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

Zurück zu Methoden