TsgcWSPClient_MQTTMethods › Publish

Publish Méthode

Publie un message vers un sujet en utilisant les indicateurs QoS et retain demandés.

Surcharges

Surcharge 1

Syntaxe

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

Paramètres

NomTypeDescription
aTopicconst String Nom de topic complet vers lequel le message est publié (sans caractères génériques).
aTextconst String Charge utile UTF-8 envoyée comme corps du paquet PUBLISH.
aQoS TmqttQoSGarantie de livraison : mtqsAtMostOnce (0), mtqsAtLeastOnce (1) ou mtqsExactlyOnce (2). Par défaut mtqsAtMostOnce.
aRetainBoolean Lorsque True, le broker stocke le message comme valeur retenue pour le sujet et le transmet aux nouveaux abonnés.
aPublishPropertiesconst TsgcWSMQTTPublish_PropertiesPropriétés MQTT 5.0 optionnelles (Content Type, Response Topic, Message Expiry, User Properties). Passez nil pour les omettre.

Valeur de retour

Identifiant de paquet assigné au paquet PUBLISH ; non nul pour QoS 1 et 2, nul pour QoS 0. Utilisez-le pour corréler avec OnMQTTPubAck, OnMQTTPubRec et OnMQTTPubComp. (Word)

Remarques

Surcharge texte, idéale pour les documents JSON et autre contenu UTF-8. L'appel retourne dès que le paquet a été remis au transport ; les accusés de réception QoS 1/2 sont transmis de manière asynchrone. Nécessite une session MQTT active établie avec Connect.

Exemple

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

Surcharge 2

Syntaxe

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

Paramètres

NomTypeDescription
aTopicconst String Nom de sujet complet sur lequel la charge utile binaire est publiée.
aStreamconst TStream Flux source dont le contenu complet est envoyé verbatim comme charge utile PUBLISH. La position est sauvegardée et restaurée par le composant.
aQoS TmqttQoSGarantie de livraison : mtqsAtMostOnce (0), mtqsAtLeastOnce (1) ou mtqsExactlyOnce (2). Par défaut mtqsAtMostOnce.
aRetainBoolean Lorsque True, le courtier stocke la charge utile comme valeur retenue pour le sujet.
aPublishPropertiesconst TsgcWSMQTTPublish_PropertiesPropriétés MQTT 5.0 optionnelles, généralement utilisées pour définir le Content Type (par exemple image/png) lors de l'envoi de données binaires.

Valeur de retour

Identifiant de paquet pour le paquet PUBLISH ; zéro pour QoS 0. Permet la corrélation avec les événements d'accusé de réception. (Word)

Remarques

Surcharge binaire pour les fichiers, les trames protobuf, les images et autres charges utiles non textuelles. Le flux est lu en entier avant la sérialisation ; les très grandes charges utiles doivent donc être fragmentées au niveau de la couche applicative pour éviter les allocations importantes. Le comportement de QoS, Retain et des propriétés est identique à la surcharge textuelle.

Exemple

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

Retour aux méthodes