TsgcWSPClient_MQTT › Yöntemler › Publish
İstenen QoS ve retain bayraklarını kullanarak bir konuya bir mesaj yayınlar.
function Publish(const aTopic, aText: String; aQoS: TmqttQoS = mtqsAtMostOnce; aRetain: Boolean = False; const aPublishProperties: TsgcWSMQTTPublish_Properties = nil) : Word;
| Name | Type | Açıklama |
|---|---|---|
aTopic | const String | Mesajın yayınlandığı tam nitelikli konu adı (joker karakter yok). |
aText | const String | PUBLISH paketi gövdesi olarak gönderilen UTF-8 yükü. |
aQoS | TmqttQoS | Teslim garantisi: mtqsAtMostOnce (0), mtqsAtLeastOnce (1) veya mtqsExactlyOnce (2). Varsayılan mtqsAtMostOnce. |
aRetain | Boolean | True olduğunda broker, mesajı konu için saklanan (retained) değer olarak saklar ve yeni abonelere iletir. |
aPublishProperties | const TsgcWSMQTTPublish_Properties | İsteğe bağlı MQTT 5.0 özellikleri (Content Type, Response Topic, Message Expiry, User Properties). Atlamak için nil geçirin. |
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)
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.
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;
| Name | Type | Açıklama |
|---|---|---|
aTopic | const String | İkili yükün yayınlandığı tam nitelikli konu adı. |
aStream | const TStream | Tü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. |
aQoS | TmqttQoS | Teslim garantisi: mtqsAtMostOnce (0), mtqsAtLeastOnce (1) veya mtqsExactlyOnce (2). Varsayılan mtqsAtMostOnce. |
aRetain | Boolean | True olduğunda broker, yükü konunun saklanan değeri olarak saklar. |
aPublishProperties | const 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. |
PUBLISH paketi için paket tanımlayıcısı; QoS 0 için sıfır. Onaylama olaylarıyla ilişkilendirmeyi sağlar. (Word)
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.
oStream := TFileStream.Create('firmware.bin', fmOpenRead or fmShareDenyWrite);
try
MQTT.Publish('devices/123/firmware', oStream, mtqsExactlyOnce);
finally
oStream.Free;
end;