Komunikaty wysyłane przez serwer są odbierane w zdarzeniu OnMQTTPublish. Zdarzenie to ma następujące parametry:
Topic: jest nazwą tematu powiązanego z tą wiadomością.
Text: to tekst wiadomości.
PublishProperties: w przypadku MQTT 5.0 są to właściwości opublikowanej wiadomości.
procedure OnMQTTPublish(Connection: TsgcWSConnection; aTopic, aText: string;
PublishProperties: TsgcWSMQTTPublishProperties);
begin
WriteLn('Topic: ' + aTopic + '. Message: ' + aText);
end;
Zdarzenie OnMQTTPublishEx udostępnia ładunek opublikowanej wiadomości w wielu formatach za pośrednictwem obiektu TsgcWSMQTTPublishData. Zdarzenie posiada następujące parametry:
Topic: jest nazwą tematu powiązanego z tą wiadomością.
Data: zawiera ładunek opublikowanej wiadomości. Posiada następujące właściwości:
Value: ładunek jako ciąg znaków.
Bytes: surowy ładunek jako TBytes.
Stream: surowy ładunek jako TMemoryStream.
PublishProperties: w przypadku MQTT 5.0 są to właściwości opublikowanej wiadomości.
procedure OnMQTTPublishEx(Connection: TsgcWSConnection; aTopic: string;
aData: TsgcWSMQTTPublishData; PublishProperties: TsgcWSMQTTPublishProperties);
begin
// read as string
WriteLn('Topic: ' + aTopic + '. Message: ' + aData.Value);
// read as bytes
WriteLn('Bytes Length: ' + IntToStr(Length(aData.Bytes)));
// read as stream
WriteLn('Stream Size: ' + IntToStr(aData.Stream.Size));
end;