TsgcWSPClient_MQTTYöntemler › PublishAndWait

PublishAndWait Method

Bir mesaj yayımlar ve broker onaylayana veya zaman aşımı dolana kadar bloklar.

Aşırı Yüklemeler

Aşırı Yükleme 1

Sözdizimi

function PublishAndWait(const aTopic, aText: String; aQoS: TmqttQoS = mtqsAtMostOnce; aRetain: Boolean = False; const aPublishProperties: TsgcWSMQTTPublish_Properties = nil; const aTimeout: Integer = 10000): Boolean;

Parametreler

NameTypeAçıklama
aTopicconst StringPUBLISH paketi için hedef konu adı.
aTextconst StringMesajın UTF-8 yükü.
aQoSTmqttQoSTeslimat garantisi. Yalnızca QoS 1 ve QoS 2 bir broker onayı üretir, bu nedenle QoS 0 paket yazıldıktan hemen sonra True döndürür.
aRetainBooleanBroker'a iletilen Retain bayrağı.
aPublishPropertiesconst TsgcWSMQTTPublish_Propertiesİsteğe bağlı MQTT 5.0 yayınlama özellikleri. Gerekmediğinde nil geçirin.
aTimeout const IntegerEşleşen PUBACK (QoS 1) veya PUBCOMP (QoS 2) için beklenecek milisaniye cinsinden maksimum süre. Varsayılan olarak 10000.

Dönüş Değeri

Broker mesajı zaman aşımı dolmadan onayladığında True; bekleme zaman aşımına uğradığında veya oturum düştüğünde False. (Boolean)

Remarks

Eşzamanlı metin aşırı yüklemesi. Çağıranın devam etmeden önce mesajın broker'a ulaştığını bilmesi gereken istek/yanıt iş akışları ve başlangıç komut dosyaları için kullanışlıdır. Bileşenin kendi olay geri çağırmalarından çağrılmamalıdır, çünkü bunlar zaten taşıma iş parçacığında serileştirilmiştir ve kilitlenmeye neden olur.

Örnek

if not MQTT.PublishAndWait('alerts/critical', '{"code":500}', mtqsAtLeastOnce, False, nil, 5000) then
  raise Exception.Create('broker did not acknowledge alert');

Overload 2

Sözdizimi

function PublishAndWait(const aTopic: String; const aStream: TStream; aQoS: TmqttQoS = mtqsAtMostOnce; aRetain: Boolean = False; const aPublishProperties: TsgcWSMQTTPublish_Properties = nil; const aTimeout: Integer = 10000): Boolean;

Parametreler

NameTypeAçıklama
aTopicconst Stringİkili PUBLISH paketi için hedef konu adı.
aStreamconst TStreamYük olarak gönderilen ham baytları sağlayan stream. İletimden önce tamamen okunur.
aQoSTmqttQoSPUBLISH paketine uygulanan teslimat garantisi.
aRetainBooleanBroker'a iletilen Retain bayrağı.
aPublishPropertiesconst TsgcWSMQTTPublish_Propertiesİsteğe bağlı MQTT 5.0 özellikleri, genellikle ikili yükler için Content Type ayarlamak amacıyla kullanılır.
aTimeout const IntegerQoS 1/2 onayını beklemek için maksimum milisaniye. Varsayılan 10000.

Dönüş Değeri

Onaylandığında True, zaman aşımı veya bağlantı kesilmesinde False. (Boolean)

Remarks

Çağıran kodun her parçanın broker tarafından depolandığını onaylaması gereken dosya yükleme akışlarına uygun eşzamanlı ikili aşırı yükleme. Bunu olay işleyicilerinden çağırmaktan kaçının ve yavaş ağlar üzerinden büyük yükler gönderirken gerçekçi zaman aşımları kullanın.

Örnek

oStream := TMemoryStream.Create;
try
  oStream.LoadFromFile('config.bin');
  if not MQTT.PublishAndWait('devices/123/config', oStream, mtqsExactlyOnce, True, nil, 30000) then
    ShowMessage('config upload failed');
finally
  oStream.Free;
end;

Yöntemlere Dön