TsgcWSPClient_MQTTYöntemler › Subscribe

Subscribe Yöntem

İstemciyi, istenen QoS'ta bir veya daha fazla topic filtresine abone eder.

Aşırı Yüklemeler

Aşırı Yükleme 1

Sözdizimi

function Subscribe(const aTopic: String; aQoS: TmqttQoS = mtqsAtMostOnce; const aSubscribeProperties: TsgcWSMQTTSubscribe_Properties = nil) : Word;

Parametreler

NameTypeAçıklama
aTopicconst StringAbone olunacak konu filtresi; tek seviyeli (+) ve çok seviyeli (#) joker karakterler desteklenir.
aQoSTmqttQoSBroker'ın eşleşen mesajlar için teslim etmesi gereken maksimum QoS. Varsayılan olarak mtqsAtMostOnce.
aSubscribePropertiesconst TsgcWSMQTTSubscribe_PropertiesSubscription Identifier, No Local bayrağı, Retain As Published veya Retain Handling gibi isteğe bağlı MQTT 5.0 özellikleri. Varsayılanları kullanmak için nil geçin.

Dönüş Değeri

SUBSCRIBE paketinin paket tanımlayıcısı. Broker'ın gerçekte atadığı QoS'u öğrenmek için OnMQTTSubscribe aracılığıyla raporlanan izinle (grant) ilişkilendirin. (Word)

Remarks

Tek konulu aşırı yükleme, en yaygın biçim. Gelen mesajlar OnMQTTPublish (veya MQTT 5.0 için OnMQTTPublishEx) aracılığıyla görünür. Broker, istenen düzeyi desteklemiyorsa veya ACL kuralları geçerliyse QoS'u düşürebilir.

Örnek

MQTT.Subscribe('sensors/+/temperature', mtqsAtLeastOnce);

Overload 2

Sözdizimi

function Subscribe(aTopics: TsgcWSTopics): Word;

Parametreler

NameTypeAçıklama
aTopicsTsgcWSTopicsTek bir SUBSCRIBE paketi olarak gönderilen, ayrı ayrı QoS ayarlarına sahip konu (topic) filtreleri koleksiyonu.

Dönüş Değeri

Batch edilmiş SUBSCRIBE paketinin paket tanımlayıcısı; OnMQTTSubscribe aracılığıyla alınan tüm izinleri ilişkilendirmek için kullanılır. (Word)

Remarks

Tek bir gidiş-dönüşte birkaç filtreye abone olan toplu aşırı yükleme. Ağ gürültüsünü azaltmak ve broker'a tek bir SUBACK'te tam bir reason-code listesi döndürme şansı vermek için, tek konulu çağrıların bir döngüsü yerine bunu tercih edin.

Örnek

oTopics := TsgcWSTopics.Create;
try
  oTopics.Add('sensors/#', mtqsAtLeastOnce);
  oTopics.Add('alerts/#', mtqsExactlyOnce);
  MQTT.Subscribe(oTopics);
finally
  oTopics.Free;
end;

Yöntemlere Dön