TsgcWSPClient_MQTT › Métodos › Publish
Publica un mensaje en un topic utilizando los indicadores QoS y retain solicitados.
function Publish(const aTopic, aText: String; aQoS: TmqttQoS = mtqsAtMostOnce; aRetain: Boolean = False; const aPublishProperties: TsgcWSMQTTPublish_Properties = nil) : Word;
| Nombre | Tipo | Descripción |
|---|---|---|
aTopic | const String | Nombre completo del tema al que se publica el mensaje (sin comodines). |
aText | const String | Carga útil UTF-8 enviada como cuerpo del paquete PUBLISH. |
aQoS | TmqttQoS | Garantía de entrega: mtqsAtMostOnce (0), mtqsAtLeastOnce (1) o mtqsExactlyOnce (2). El valor predeterminado es mtqsAtMostOnce. |
aRetain | Boolean | Cuando es True, el broker almacena el mensaje como valor retenido para el tema y lo reenvía a los nuevos suscriptores. |
aPublishProperties | const TsgcWSMQTTPublish_Properties | Propiedades opcionales de MQTT 5.0 (Tipo de Contenido, Topic de Respuesta, Expiración de Mensaje, Propiedades de Usuario). Pase nil para omitirlas. |
Identificador de paquete asignado al paquete PUBLISH; distinto de cero para QoS 1 y 2, cero para QoS 0. Úselo para correlacionar con OnMQTTPubAck, OnMQTTPubRec y OnMQTTPubComp. (Word)
Sobrecarga de texto, ideal para documentos JSON y otro contenido UTF-8. La llamada retorna en cuanto el paquete se ha entregado al transporte; las confirmaciones de QoS 1/2 se entregan de forma asíncrona. Requiere una sesión MQTT activa establecida 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;
| Nombre | Tipo | Descripción |
|---|---|---|
aTopic | const String | Nombre de tema completo al que se publica la carga útil binaria. |
aStream | const TStream | Flujo de origen cuyo contenido completo se envía literalmente como carga útil de PUBLISH. El componente guarda y restaura la posición. |
aQoS | TmqttQoS | Garantía de entrega: mtqsAtMostOnce (0), mtqsAtLeastOnce (1) o mtqsExactlyOnce (2). El valor predeterminado es mtqsAtMostOnce. |
aRetain | Boolean | Cuando es True, el broker almacena la carga como valor retenido para el topic. |
aPublishProperties | const TsgcWSMQTTPublish_Properties | Propiedades opcionales de MQTT 5.0, normalmente utilizadas para establecer el tipo de contenido (por ejemplo image/png) al enviar datos binarios. |
Identificador de paquete para el paquete PUBLISH; cero para QoS 0. Permite la correlación con eventos de confirmación. (Word)
Sobrecarga binaria para archivos, tramas protobuf, imágenes y otras cargas no textuales. El stream se lee completamente antes de la serialización, por lo que las cargas muy grandes deben fragmentarse en la capa de aplicación para evitar grandes asignaciones de memoria. El comportamiento de QoS, Retain y las propiedades es idéntico al de la sobrecarga de texto.
oStream := TFileStream.Create('firmware.bin', fmOpenRead or fmShareDenyWrite);
try
MQTT.Publish('devices/123/firmware', oStream, mtqsExactlyOnce);
finally
oStream.Free;
end;