TsgcWSPClient_MQTTMétodos › Publish

Publish Method

Publica uma mensagem em um tópico utilizando as flags de QoS e retain solicitadas.

Overloads

Overload 1

Sintaxe

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

Parâmetros

NameTypeDescrição
aTopicconst StringNome de tópico totalmente qualificado para o qual a mensagem é publicada (sem wildcards).
aTextconst StringPayload UTF-8 enviado como o corpo do pacote PUBLISH.
aQoSTmqttQoSGarantia de entrega: mtqsAtMostOnce (0), mtqsAtLeastOnce (1) ou mtqsExactlyOnce (2). Padrão é mtqsAtMostOnce.
aRetainBooleanQuando True, o broker armazena a mensagem como o valor retido para o tópico e a encaminha a novos assinantes.
aPublishPropertiesconst TsgcWSMQTTPublish_PropertiesPropriedades MQTT 5.0 opcionais (Content Type, Response Topic, Message Expiry, User Properties). Passe nil para omitir.

Valor de retorno

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)

Observações

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.

Exemplo

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

Sobrecarga 2

Sintaxe

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

Parâmetros

NameTypeDescrição
aTopicconst StringNome totalmente qualificado do tópico no qual o payload binário é publicado.
aStreamconst TStreamStream de origem cujo conteúdo completo é enviado literalmente como o payload do PUBLISH. A posição é salva e restaurada pelo componente.
aQoSTmqttQoSGarantia de entrega: mtqsAtMostOnce (0), mtqsAtLeastOnce (1) ou mtqsExactlyOnce (2). Padrão é mtqsAtMostOnce.
aRetainBooleanQuando True, o broker armazena o payload como o valor retido para o tópico.
aPublishPropertiesconst TsgcWSMQTTPublish_PropertiesPropriedades MQTT 5.0 opcionais, normalmente usadas para definir o Content Type (por exemplo, image/png) ao enviar dados binários.

Valor de retorno

Identificador de pacote para o pacote PUBLISH; zero para QoS 0. Permite correlação com eventos de confirmação. (Word)

Observações

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.

Exemplo

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

Voltar para Métodos