TsgcWSPClient_MQTT | MQTT Topics

Konular

MQTT'de, topic kelimesi, broker'ın her bağlı istemci için mesajları filtrelemek üzere kullandığı bir UTF-8 dizesine atıfta bulunur. Konu, bir veya daha fazla konu seviyesinden oluşur. Her konu seviyesi bir eğik çizgi (konu seviyesi ayırıcı) ile ayrılır

 

myHome / groundfloor / livingroom / temperature

 

Bir mesaj kuyruğuyla karşılaştırıldığında, MQTT konuları çok hafiftir. İstemcinin, üzerine yayınlamadan veya abone olmadan önce istenen konuyu oluşturması gerekmez. Broker her geçerli konuyu önceden herhangi bir başlatma olmadan kabul eder. Her konunun en az 1 karakter içermesi gerektiğini ve konu dizesinin boş boşluklara izin verdiğini unutmayın. Konular büyük/küçük harfe duyarlıdır.

 

 

WildCards

Bir istemci bir konuya abone olduğunda, yayınlanan bir mesajın tam konusuna abone olabilir veya birden fazla konuya aynı anda abone olmak için joker karakterler kullanabilir. Bir joker karakter yalnızca konulara abone olmak için kullanılabilir, bir mesaj yayınlamak için değil. İki farklı joker karakter türü vardır: _single-level ve _multi-level.

 

Tek Seviye: +

Adından da anlaşılacağı gibi, tek seviyeli bir joker karakter bir konu seviyesinin yerini alır. Artı sembolü, bir konuda tek seviyeli bir joker karakteri temsil eder.

 

myHome / groundfloor / + / temperature

 

Herhangi bir konu (topic), joker karakter yerine rastgele bir dize içeriyorsa, tek düzeyli joker karakterli bir konuyla eşleşir. Örneğin _myhome/groundfloor/+/temperature aboneliği aşağıdaki sonuçları üretebilir:

 

YES => myHome / groundfloor / livingroom / temperature

YES => myHome / groundfloor / kitchen / temperature

NO => myHome / groundfloor / livingroom / brightness

HAYIR => myHome / firstfloor / livingroom / temperature

HAYIR => myHome / groundfloor / kitchen / fridge / temperature

 

Multi Level: #

Çok seviyeli joker karakter birçok konu seviyesini kapsar. Diş sembolü, konuda çok seviyeli joker karakteri temsil eder. Broker'ın hangi konuların eşleştiğini belirlemesi için, çok seviyeli joker karakter konudaki son karakter olarak yerleştirilmeli ve önünde bir eğik çizgi bulunmalıdır.

 

myHome / groundfloor / #

 

YES => myHome / groundfloor / livingroom / temperature

YES => myHome / groundfloor / kitchen / temperature

YES => myHome / groundfloor / kitchen / brightness

NO => myHome / firstfloor / kitchen / temperature

 

Bir istemci bir topic'e çok seviyeli bir joker karakterle abone olduğunda, joker karakterden önceki desenle başlayan bir topic'in tüm mesajlarını alır, topic ne kadar uzun veya derin olursa olsun. Bir topic olarak yalnızca çok seviyeli joker karakteri belirtirseniz (_#), MQTT broker'a gönderilen tüm mesajları alırsınız.