TsgcWSPClient_MQTT › Events › OnMQTTPublish
Se activa cuando el broker entrega un mensaje PUBLISH entrante; expone Topic, Text y PublishProperties de MQTT 5.
property OnMQTTPublish: TsgcWSMQTTPublishEvent;
// TsgcWSMQTTPublishEvent = procedure(Connection: TsgcWSConnection; aTopic, aText: String; PublishProperties: TsgcWSMQTTPUBLISHProperties) of object
—
Evento de entrega principal: se dispara cada vez que el broker reenvía un PUBLISH a este cliente para un tema que coincide con una de sus suscripciones. Independientemente del QoS de publicación (0, 1 o 2), el evento se activa después de que se completa la secuencia de acuse de recibo a nivel de transporte: QoS 0 es «disparar y olvidar», QoS 1 tras PUBACK, QoS 2 tras el intercambio PUBREC/PUBREL/PUBCOMP. Parámetros:
procedure TForm1.MQTTPublish(Connection: TsgcWSConnection;
aTopic, aText: String;
PublishProperties: TsgcWSMQTTPUBLISHProperties);
begin
Memo1.Lines.Add(Format('[%s] %s', [aTopic, aText]));
// MQTT 5: honour a ResponseTopic if the sender set one
if PublishProperties.ResponseTopic <> '' then
MQTT.Publish(PublishProperties.ResponseTopic, 'ack', mtqsAtMostOnce);
end;