TsgcWSPClient_MQTT › Métodos › Publish
Publica uma mensagem em um tópico utilizando as flags de QoS e retain solicitadas.
function Publish(const aTopic, aText: String; aQoS: TmqttQoS = mtqsAtMostOnce; aRetain: Boolean = False; const aPublishProperties: TsgcWSMQTTPublish_Properties = nil) : Word;
| Name | Type | Descrição |
|---|---|---|
aTopic | const String | Nome de tópico totalmente qualificado para o qual a mensagem é publicada (sem wildcards). |
aText | const String | Payload UTF-8 enviado como o corpo do pacote PUBLISH. |
aQoS | TmqttQoS | Garantia de entrega: mtqsAtMostOnce (0), mtqsAtLeastOnce (1) ou mtqsExactlyOnce (2). Padrão é mtqsAtMostOnce. |
aRetain | Boolean | Quando True, o broker armazena a mensagem como o valor retido para o tópico e a encaminha a novos assinantes. |
aPublishProperties | const TsgcWSMQTTPublish_Properties | Propriedades MQTT 5.0 opcionais (Content Type, Response Topic, Message Expiry, User Properties). Passe nil para omitir. |
Identificador de pacote atribuído ao pacote PUBLISH; diferente de zero para QoS 1 e 2, zero para QoS 0. Use-o para correlacionar com OnMQTTPubAck, OnMQTTPubRec e OnMQTTPubComp. (Word)
Sobrecarga de texto, ideal para documentos JSON e outro conteúdo UTF-8. A chamada retorna assim que o pacote é entregue ao transporte; as confirmações QoS 1/2 são entregues de forma assíncrona. Requer uma sessão MQTT ativa estabelecida com 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;
| Name | Type | Descrição |
|---|---|---|
aTopic | const String | Nome totalmente qualificado do tópico no qual o payload binário é publicado. |
aStream | const TStream | Stream de origem cujo conteúdo completo é enviado literalmente como o payload do PUBLISH. A posição é salva e restaurada pelo componente. |
aQoS | TmqttQoS | Garantia de entrega: mtqsAtMostOnce (0), mtqsAtLeastOnce (1) ou mtqsExactlyOnce (2). Padrão é mtqsAtMostOnce. |
aRetain | Boolean | Quando True, o broker armazena o payload como o valor retido para o tópico. |
aPublishProperties | const TsgcWSMQTTPublish_Properties | Propriedades MQTT 5.0 opcionais, normalmente usadas para definir o Content Type (por exemplo, image/png) ao enviar dados binários. |
Identificador de pacote para o pacote PUBLISH; zero para QoS 0. Permite correlação com eventos de confirmação. (Word)
Sobrecarga binária para arquivos, quadros protobuf, imagens e outros payloads não textuais. O stream é lido por completo antes da serialização, então payloads muito grandes devem ser fragmentados na camada da aplicação para evitar alocações grandes. O comportamento de QoS, Retain e das propriedades é idêntico ao da sobrecarga de texto.
oStream := TFileStream.Create('firmware.bin', fmOpenRead or fmShareDenyWrite);
try
MQTT.Publish('devices/123/firmware', oStream, mtqsExactlyOnce);
finally
oStream.Free;
end;