TsgcWSPClient_MQTTMethoden › Publish

Publish Methode

Publiceert een bericht naar een onderwerp met de gevraagde QoS- en retain-vlaggen.

Overloads

Overload 1

Syntaxis

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

Parameters

NaamTypeBeschrijving
aTopicconst StringVolledig gekwalificeerde onderwerpnaam waarop het bericht wordt gepubliceerd (geen jokertekens).
aTextconst StringUTF-8-payload verzonden als de PUBLISH-pakketbody.
aQoSTmqttQoSAfleveringsgarantie: mtqsAtMostOnce (0), mtqsAtLeastOnce (1) of mtqsExactlyOnce (2). Standaard mtqsAtMostOnce.
aRetainBooleanWanneer True slaat de broker het bericht op als de bewaarde waarde voor het onderwerp en stuurt het door naar nieuwe abonnees.
aPublishPropertiesconst TsgcWSMQTTPublish_PropertiesOptionele MQTT 5.0-eigenschappen (Content Type, Response Topic, Message Expiry, User Properties). Geef nil door om weg te laten.

Retourwaarde

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)

Opmerkingen

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.

Voorbeeld

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

Overload 2

Syntaxis

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

Parameters

NaamTypeBeschrijving
aTopicconst StringVolledig gekwalificeerde topicnaam waarnaar de binaire payload wordt gepubliceerd.
aStreamconst TStreamBronstream waarvan de volledige inhoud woordelijk als PUBLISH-payload wordt verzonden. De positie wordt opgeslagen en hersteld door de component.
aQoSTmqttQoSAfleveringsgarantie: mtqsAtMostOnce (0), mtqsAtLeastOnce (1) of mtqsExactlyOnce (2). Standaard mtqsAtMostOnce.
aRetainBooleanWanneer True slaat de broker de payload op als de behouden waarde voor het onderwerp.
aPublishPropertiesconst TsgcWSMQTTPublish_PropertiesOptionele MQTT 5.0-eigenschappen, doorgaans gebruikt om het Content Type in te stellen (bijvoorbeeld image/png) bij het verzenden van binaire gegevens.

Retourwaarde

Pakketidentificatie voor het PUBLISH-pakket; nul voor QoS 0. Maakt correlatie met bevestigingsgebeurtenissen mogelijk. (Word)

Opmerkingen

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.

Voorbeeld

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

Terug naar methoden