TsgcWSPClient_MQTT › Methods › Publish
Publie un message vers un sujet en utilisant les indicateurs QoS et retain demandés.
function Publish(const aTopic, aText: String; aQoS: TmqttQoS = mtqsAtMostOnce; aRetain: Boolean = False; const aPublishProperties: TsgcWSMQTTPublish_Properties = nil) : Word;
| Nom | Type | Description |
|---|---|---|
aTopic | const String
| Nom de topic complet vers lequel le message est publié (sans caractères génériques). |
aText | const String
| Charge utile UTF-8 envoyée comme corps du paquet PUBLISH. |
aQoS
| TmqttQoS | Garantie de livraison : mtqsAtMostOnce (0), mtqsAtLeastOnce (1) ou mtqsExactlyOnce (2). Par défaut mtqsAtMostOnce. |
aRetain | Boolean
| Lorsque True, le broker stocke le message comme valeur retenue pour le sujet et le transmet aux nouveaux abonnés. |
aPublishProperties | const TsgcWSMQTTPublish_Properties | Propriétés MQTT 5.0 optionnelles (Content Type, Response Topic, Message Expiry, User Properties). Passez nil pour les omettre. |
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)
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.
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;
| Nom | Type | Description |
|---|---|---|
aTopic | const String
| Nom de sujet complet sur lequel la charge utile binaire est publiée. |
aStream | const 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
| TmqttQoS | Garantie de livraison : mtqsAtMostOnce (0), mtqsAtLeastOnce (1) ou mtqsExactlyOnce (2). Par défaut mtqsAtMostOnce. |
aRetain | Boolean
| Lorsque True, le courtier stocke la charge utile comme valeur retenue pour le sujet. |
aPublishProperties | const TsgcWSMQTTPublish_Properties | Proprié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. |
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)
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.
oStream := TFileStream.Create('firmware.bin', fmOpenRead or fmShareDenyWrite);
try
MQTT.Publish('devices/123/firmware', oStream, mtqsExactlyOnce);
finally
oStream.Free;
end;