TsgcWSPClient_MQTT › Methoden › Subscribe
Abonniert den Client für einen oder mehrere Topic-Filter mit der angeforderten QoS.
function Subscribe(const aTopic: String; aQoS: TmqttQoS = mtqsAtMostOnce; const aSubscribeProperties: TsgcWSMQTTSubscribe_Properties = nil) : Word;
| Name | Typ | Beschreibung |
|---|---|---|
aTopic | const String | Topic-Filter, der abonniert werden soll; einstufige (+) und mehrstufige (#) Platzhalter werden unterstützt. |
aQoS | TmqttQoS | Maximales QoS, das der Broker für übereinstimmende Nachrichten liefern soll. Standardwert mtqsAtMostOnce. |
aSubscribeProperties | const TsgcWSMQTTSubscribe_Properties | Optionale MQTT-5.0-Eigenschaften wie Subscription Identifier, No-Local-Flag, Retain As Published oder Retain Handling. Übergeben Sie nil, um die Standardwerte zu verwenden. |
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)
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.
MQTT.Subscribe('sensors/+/temperature', mtqsAtLeastOnce);
function Subscribe(aTopics: TsgcWSTopics): Word;
| Name | Typ | Beschreibung |
|---|---|---|
aTopics | TsgcWSTopics | Sammlung von Topic-Filtern mit individuellen QoS-Einstellungen, gesendet als einzelnes SUBSCRIBE-Paket. |
Paketbezeichner des gebündelten SUBSCRIBE-Pakets; wird verwendet, um alle über OnMQTTSubscribe empfangenen Berechtigungen zu korrelieren. (Word)
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.
oTopics := TsgcWSTopics.Create;
try
oTopics.Add('sensors/#', mtqsAtLeastOnce);
oTopics.Add('alerts/#', mtqsExactlyOnce);
MQTT.Subscribe(oTopics);
finally
oTopics.Free;
end;