TsgcWSPClient_MQTTMethoden › Publish

Publish Methode

Veröffentlicht eine Nachricht in einem Topic unter Verwendung der angeforderten QoS- und Retain-Flags.

Überladungen

Overload 1

Syntax

function Publish(const aTopic, aText: String; aQoS: TmqttQoS = mtqsAtMostOnce; aRetain: Boolean = False; const aPublishProperties: TsgcWSMQTTPublish_Properties = nil) : Word;

Parameter

NameTypBeschreibung
aTopicconst StringVollqualifizierter Topic-Name, unter dem die Nachricht veröffentlicht wird (keine Wildcards).
aTextconst StringUTF-8-Payload, die als PUBLISH-Paketkörper gesendet wird.
aQoSTmqttQoSZustellgarantie: mtqsAtMostOnce (0), mtqsAtLeastOnce (1) oder mtqsExactlyOnce (2). Standard ist mtqsAtMostOnce.
aRetainBooleanWenn True, speichert der Broker die Nachricht als beibehaltenen Wert für das Topic und leitet sie an neue Abonnenten weiter.
aPublishPropertiesconst TsgcWSMQTTPublish_PropertiesOptionale MQTT-5.0-Eigenschaften (Content Type, Response Topic, Message Expiry, User Properties). Übergeben Sie nil zum Weglassen.

Rückgabewert

Paketkennung, die dem PUBLISH-Paket zugewiesen ist; ungleich null für QoS 1 und 2, null für QoS 0. Verwenden Sie sie zur Korrelation mit OnMQTTPubAck, OnMQTTPubRec und OnMQTTPubComp. (Word)

Hinweise

Text-Overload, ideal für JSON-Dokumente und andere UTF-8-Inhalte. Der Aufruf kehrt zurück, sobald das Paket an den Transport übergeben wurde; QoS-1/2-Bestätigungen werden asynchron geliefert. Erfordert eine aktive MQTT-Sitzung, die mit Connect hergestellt wurde.

Beispiel

MQTT.Publish('sensors/temp', '{"value":22.5}', mtqsAtLeastOnce, True);

Überladung 2

Syntax

function Publish(const aTopic: String; const aStream: TStream; aQoS: TmqttQoS = mtqsAtMostOnce; aRetain: Boolean = False; const aPublishProperties: TsgcWSMQTTPublish_Properties = nil) : Word;

Parameter

NameTypBeschreibung
aTopicconst StringVollständig qualifizierter Topic-Name, an den die binäre Nutzlast veröffentlicht wird.
aStreamconst TStreamQuell-Stream, dessen vollständiger Inhalt wortgetreu als PUBLISH-Nutzlast gesendet wird. Position wird von der Komponente gespeichert und wiederhergestellt.
aQoSTmqttQoSZustellgarantie: mtqsAtMostOnce (0), mtqsAtLeastOnce (1) oder mtqsExactlyOnce (2). Standard ist mtqsAtMostOnce.
aRetainBooleanWenn True, speichert der Broker die Nutzlast als Retained-Wert für das Topic.
aPublishPropertiesconst TsgcWSMQTTPublish_PropertiesOptionale MQTT-5.0-Eigenschaften, die typischerweise verwendet werden, um den Content Type (zum Beispiel image/png) beim Senden von Binärdaten festzulegen.

Rückgabewert

Paketbezeichner für das PUBLISH-Paket; null für QoS 0. Ermöglicht die Korrelation mit Bestätigungsereignissen. (Word)

Hinweise

Binäre Überladung für Dateien, Protobuf-Frames, Bilder und andere nicht-textuelle Nutzlasten. Der Stream wird vor der Serialisierung vollständig gelesen, daher sollten sehr große Nutzlasten auf Anwendungsebene in Chunks aufgeteilt werden, um große Allokationen zu vermeiden. Das Verhalten von QoS, Retain und Eigenschaften ist identisch mit der Text-Überladung.

Beispiel

oStream := TFileStream.Create('firmware.bin', fmOpenRead or fmShareDenyWrite);
try
  MQTT.Publish('devices/123/firmware', oStream, mtqsExactlyOnce);
finally
  oStream.Free;
end;

Zurück zu Methoden