TsgcWSPClient_MQTTEventi › OnMQTTPublishEx

OnMQTTPublishEx Evento

Si attiva alla ricezione di PUBLISH; consegna il payload come TsgcWSMQTTPublishData (Value, Bytes, Stream) insieme al TsgcWSMQTTMessage grezzo.

Sintassi

property OnMQTTPublishEx: TsgcWSMQTTPublishExEvent;
// TsgcWSMQTTPublishExEvent = procedure(Connection: TsgcWSConnection; aTopic: String; aData: TsgcWSMQTTPublishData; PublishProperties: TsgcWSMQTTPUBLISHProperties; aMessage: TsgcWSMQTTMessage) of object

Valore predefinito

Note

Variante estesa di OnMQTTPublish per payload binari e ispezione a basso livello. Viene generato per ogni PUBLISH in arrivo dopo che l'handshake QoS a livello di trasporto è terminato (QoS 0 immediatamente; QoS 1 dopo PUBACK; QoS 2 dopo PUBREC → PUBREL → PUBCOMP). Parametri:

Gestisca OnMQTTPublish oppure OnMQTTPublishEx (il componente consegna i messaggi in ingresso a quello assegnato); OnMQTTPublishEx è preferibile quando non è garantito che il payload sia UTF-8 valido.

Esempio

procedure TForm1.MQTTPublishEx(Connection: TsgcWSConnection;
  aTopic: String; aData: TsgcWSMQTTPublishData;
  PublishProperties: TsgcWSMQTTPUBLISHProperties;
  aMessage: TsgcWSMQTTMessage);
var
  vBytes: TBytes;
begin
  Memo1.Lines.Add(Format('[%s] QoS=%d %d bytes',
    [aTopic, Ord(aMessage.QoS), Length(aData.Bytes)]));

  // read the payload as raw bytes (safe for binary content)
  vBytes := aData.Bytes;

  // or pull it through the stream API
  aData.Stream.Position := 0;
  SaveStreamToFile(aData.Stream, 'payload.bin');
end;

Torna agli Eventi