TsgcWSPClient_MQTT › Methoden › Publish
Publiceert een bericht naar een onderwerp met de gevraagde QoS- en retain-vlaggen.
function Publish(const aTopic, aText: String; aQoS: TmqttQoS = mtqsAtMostOnce; aRetain: Boolean = False; const aPublishProperties: TsgcWSMQTTPublish_Properties = nil) : Word;
| Naam | Type | Beschrijving |
|---|---|---|
aTopic | const String | Volledig gekwalificeerde onderwerpnaam waarop het bericht wordt gepubliceerd (geen jokertekens). |
aText | const String | UTF-8-payload verzonden als de PUBLISH-pakketbody. |
aQoS | TmqttQoS | Afleveringsgarantie: mtqsAtMostOnce (0), mtqsAtLeastOnce (1) of mtqsExactlyOnce (2). Standaard mtqsAtMostOnce. |
aRetain | Boolean | Wanneer True slaat de broker het bericht op als de bewaarde waarde voor het onderwerp en stuurt het door naar nieuwe abonnees. |
aPublishProperties | const TsgcWSMQTTPublish_Properties | Optionele MQTT 5.0-eigenschappen (Content Type, Response Topic, Message Expiry, User Properties). Geef nil door om weg te laten. |
Pakketidentificator toegewezen aan het PUBLISH-pakket; niet-nul voor QoS 1 en 2, nul voor QoS 0. Gebruik het om te correleren met OnMQTTPubAck, OnMQTTPubRec en OnMQTTPubComp. (Word)
Tekst-overload, ideaal voor JSON-documenten en andere UTF-8-inhoud. De aanroep keert terug zodra het pakket aan het transport is overgedragen; QoS 1/2-bevestigingen worden asynchroon geleverd. Vereist een actieve MQTT-sessie die is ingesteld met Connect.
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;
| Naam | Type | Beschrijving |
|---|---|---|
aTopic | const String | Volledig gekwalificeerde topicnaam waarnaar de binaire payload wordt gepubliceerd. |
aStream | const TStream | Bronstream waarvan de volledige inhoud woordelijk als PUBLISH-payload wordt verzonden. De positie wordt opgeslagen en hersteld door de component. |
aQoS | TmqttQoS | Afleveringsgarantie: mtqsAtMostOnce (0), mtqsAtLeastOnce (1) of mtqsExactlyOnce (2). Standaard mtqsAtMostOnce. |
aRetain | Boolean | Wanneer True slaat de broker de payload op als de behouden waarde voor het onderwerp. |
aPublishProperties | const TsgcWSMQTTPublish_Properties | Optionele MQTT 5.0-eigenschappen, doorgaans gebruikt om het Content Type in te stellen (bijvoorbeeld image/png) bij het verzenden van binaire gegevens. |
Pakketidentificatie voor het PUBLISH-pakket; nul voor QoS 0. Maakt correlatie met bevestigingsgebeurtenissen mogelijk. (Word)
Binaire overload voor bestanden, protobuf-frames, afbeeldingen en andere niet-tekstuele payloads. De stream wordt volledig gelezen voor serialisatie, dus zeer grote payloads moeten op de applicatielaag worden opgedeeld om grote toewijzingen te vermijden. Het gedrag van QoS, Retain en eigenschappen is identiek aan de tekstoverload.
oStream := TFileStream.Create('firmware.bin', fmOpenRead or fmShareDenyWrite);
try
MQTT.Publish('devices/123/firmware', oStream, mtqsExactlyOnce);
finally
oStream.Free;
end;