TsgcWSPClient_MQTT › Methoden › Publish
Veröffentlicht eine Nachricht in einem Topic unter Verwendung der angeforderten QoS- und Retain-Flags.
function Publish(const aTopic, aText: String; aQoS: TmqttQoS = mtqsAtMostOnce; aRetain: Boolean = False; const aPublishProperties: TsgcWSMQTTPublish_Properties = nil) : Word;
| Name | Typ | Beschreibung |
|---|---|---|
aTopic | const String | Vollqualifizierter Topic-Name, unter dem die Nachricht veröffentlicht wird (keine Wildcards). |
aText | const String | UTF-8-Payload, die als PUBLISH-Paketkörper gesendet wird. |
aQoS | TmqttQoS | Zustellgarantie: mtqsAtMostOnce (0), mtqsAtLeastOnce (1) oder mtqsExactlyOnce (2). Standard ist mtqsAtMostOnce. |
aRetain | Boolean | Wenn True, speichert der Broker die Nachricht als beibehaltenen Wert für das Topic und leitet sie an neue Abonnenten weiter. |
aPublishProperties | const TsgcWSMQTTPublish_Properties | Optionale MQTT-5.0-Eigenschaften (Content Type, Response Topic, Message Expiry, User Properties). Übergeben Sie nil zum Weglassen. |
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)
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.
MQTT.Publish('sensors/temp', '{"value":22.5}', mtqsAtLeastOnce, True);
function Publish(const aTopic: String; const aStream: TStream; aQoS: TmqttQoS = mtqsAtMostOnce; aRetain: Boolean = False; const aPublishProperties: TsgcWSMQTTPublish_Properties = nil) : Word;
| Name | Typ | Beschreibung |
|---|---|---|
aTopic | const String | Vollständig qualifizierter Topic-Name, an den die binäre Nutzlast veröffentlicht wird. |
aStream | const TStream | Quell-Stream, dessen vollständiger Inhalt wortgetreu als PUBLISH-Nutzlast gesendet wird. Position wird von der Komponente gespeichert und wiederhergestellt. |
aQoS | TmqttQoS | Zustellgarantie: mtqsAtMostOnce (0), mtqsAtLeastOnce (1) oder mtqsExactlyOnce (2). Standard ist mtqsAtMostOnce. |
aRetain | Boolean | Wenn True, speichert der Broker die Nutzlast als Retained-Wert für das Topic. |
aPublishProperties | const TsgcWSMQTTPublish_Properties | Optionale MQTT-5.0-Eigenschaften, die typischerweise verwendet werden, um den Content Type (zum Beispiel image/png) beim Senden von Binärdaten festzulegen. |
Paketbezeichner für das PUBLISH-Paket; null für QoS 0. Ermöglicht die Korrelation mit Bestätigungsereignissen. (Word)
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.
oStream := TFileStream.Create('firmware.bin', fmOpenRead or fmShareDenyWrite);
try
MQTT.Publish('devices/123/firmware', oStream, mtqsExactlyOnce);
finally
oStream.Free;
end;