TsgcWSPClient_MQTTYöntemler › Publish

Publish Yöntem

İstenen QoS ve retain bayraklarını kullanarak bir konuya bir mesaj yayınlar.

Aşırı Yüklemeler

Aşırı Yükleme 1

Sözdizimi

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

Parametreler

NameTypeAçıklama
aTopicconst StringMesajın yayınlandığı tam nitelikli konu adı (joker karakter yok).
aTextconst StringPUBLISH paketi gövdesi olarak gönderilen UTF-8 yükü.
aQoSTmqttQoS Teslim garantisi: mtqsAtMostOnce (0), mtqsAtLeastOnce (1) veya mtqsExactlyOnce (2). Varsayılan mtqsAtMostOnce.
aRetainBoolean True olduğunda broker, mesajı konu için saklanan (retained) değer olarak saklar ve yeni abonelere iletir.
aPublishPropertiesconst TsgcWSMQTTPublish_Propertiesİsteğe bağlı MQTT 5.0 özellikleri (Content Type, Response Topic, Message Expiry, User Properties). Atlamak için nil geçirin.

Dönüş Değeri

PUBLISH paketine atanan paket tanımlayıcısı; QoS 1 ve 2 için sıfırdan farklı, QoS 0 için sıfır. OnMQTTPubAck, OnMQTTPubRec ve OnMQTTPubComp ile ilişkilendirmek için kullanın. (Word)

Remarks

Metin aşırı yüklemesi, JSON belgeleri ve diğer UTF-8 içeriği için idealdir. Çağrı, paket taşıma katmanına teslim edilir edilmez geri döner; QoS 1/2 onayları eşzamansız olarak teslim edilir. Connect ile kurulmuş etkin bir MQTT oturumu gerektirir.

Örnek

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

Overload 2

Sözdizimi

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

Parametreler

NameTypeAçıklama
aTopicconst Stringİkili yükün yayınlandığı tam nitelikli konu adı.
aStreamconst TStreamTüm içeriği PUBLISH yükü olarak olduğu gibi gönderilen kaynak stream. Konum, bileşen tarafından kaydedilir ve geri yüklenir.
aQoSTmqttQoS Teslim garantisi: mtqsAtMostOnce (0), mtqsAtLeastOnce (1) veya mtqsExactlyOnce (2). Varsayılan mtqsAtMostOnce.
aRetainBooleanTrue olduğunda broker, yükü konunun saklanan değeri olarak saklar.
aPublishPropertiesconst TsgcWSMQTTPublish_Propertiesİsteğe bağlı MQTT 5.0 özellikleri, genellikle ikili veri gönderirken Content Type (örneğin image/png) ayarlamak için kullanılır.

Dönüş Değeri

PUBLISH paketi için paket tanımlayıcısı; QoS 0 için sıfır. Onaylama olaylarıyla ilişkilendirmeyi sağlar. (Word)

Remarks

Dosyalar, protobuf çerçeveleri, görüntüler ve diğer metinsel olmayan yükler için ikili aşırı yükleme. Stream, serileştirmeden önce tamamen okunur, bu nedenle çok büyük yüklerin büyük tahsisleri önlemek için uygulama katmanında parçalanması gerekir. QoS, Retain ve özelliklerin davranışı metin aşırı yüklemesiyle aynıdır.

Örnek

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

Yöntemlere Dön