TsgcWSPClient_MQTT › Metodi › Publish
Pubblica un messaggio su un topic utilizzando i flag QoS e retain richiesti.
function Publish(const aTopic, aText: String; aQoS: TmqttQoS = mtqsAtMostOnce; aRetain: Boolean = False; const aPublishProperties: TsgcWSMQTTPublish_Properties = nil) : Word;
| Nome | Tipo | Descrizione |
|---|---|---|
aTopic | const String | Nome completo del topic a cui il messaggio viene pubblicato (senza caratteri jolly). |
aText | const String | Payload UTF-8 inviato come corpo del pacchetto PUBLISH. |
aQoS | TmqttQoS | Garanzia di consegna: mtqsAtMostOnce (0), mtqsAtLeastOnce (1) o mtqsExactlyOnce (2). Il valore predefinito è mtqsAtMostOnce. |
aRetain | Boolean | Se True, il broker memorizza il messaggio come valore conservato per l'argomento e lo invia ai nuovi sottoscrittori. |
aPublishProperties | const TsgcWSMQTTPublish_Properties | Proprietà MQTT 5.0 opzionali (Content Type, Response Topic, Message Expiry, User Properties). Passi nil per ometterle. |
Identificatore di pacchetto assegnato al pacchetto PUBLISH; diverso da zero per QoS 1 e 2, zero per QoS 0. Utilizzarlo per correlare con OnMQTTPubAck, OnMQTTPubRec e OnMQTTPubComp. (Word)
Overload testuale, ideale per documenti JSON e altri contenuti UTF-8. La chiamata ritorna non appena il pacchetto è stato consegnato al trasporto; le conferme QoS 1/2 vengono recapitate in modo asincrono. Richiede una sessione MQTT attiva stabilita con 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;
| Nome | Tipo | Descrizione |
|---|---|---|
aTopic | const String | Nome completo dell'argomento a cui viene pubblicato il payload binario. |
aStream | const TStream | Stream sorgente il cui contenuto integrale viene inviato verbatim come payload PUBLISH. La posizione viene salvata e ripristinata dal componente. |
aQoS | TmqttQoS | Garanzia di consegna: mtqsAtMostOnce (0), mtqsAtLeastOnce (1) o mtqsExactlyOnce (2). Il valore predefinito è mtqsAtMostOnce. |
aRetain | Boolean | Quando True, il broker memorizza il payload come valore retained per l'argomento. |
aPublishProperties | const TsgcWSMQTTPublish_Properties | Proprietà MQTT 5.0 opzionali, tipicamente utilizzate per impostare il Content Type (ad esempio image/png) durante l'invio di dati binari. |
Identificatore del pacchetto per il pacchetto PUBLISH; zero per QoS 0. Consente la correlazione con gli eventi di conferma. (Word)
Overload binario per file, frame protobuf, immagini e altri payload non testuali. Lo stream viene letto interamente prima della serializzazione, quindi i payload molto grandi dovrebbero essere suddivisi a livello applicativo per evitare allocazioni eccessive. Il comportamento di QoS, Retain e delle proprietà è identico all'overload testuale.
oStream := TFileStream.Create('firmware.bin', fmOpenRead or fmShareDenyWrite);
try
MQTT.Publish('devices/123/firmware', oStream, mtqsExactlyOnce);
finally
oStream.Free;
end;