Bir MQTT istemcisi kendi oluşturduğu bir konuya abone olabilir mi?


18

Anladığım kadarıyla, MQTT'de, istemci ilgili konu adıyla bir şey yayınladığında bir konu oluşturulur.

Bir konuyu yapılandırmaya gerek yoktur, üzerinde yayın yapmak yeterlidir.

Gönderen burada .

Bir müşterinin yayınlandıktan sonra kendi konusuna abone olması mümkün mü? Şartnamelerde herhangi bir kısıtlama bulamadım . Olası anormal davranışlar olarak da listelenmez:

5.4.8 Anormal davranışların tespiti

Sunucu uygulamaları, olası güvenlik olaylarını tespit etmek için İstemci davranışını izleyebilir. Örneğin:

  • Tekrarlanan bağlantı girişimleri
  • Tekrarlanan kimlik doğrulama girişimleri
  • Bağlantıların anormal sonlandırılması
  • Konu taraması (birçok konuya gönderme veya abone olma girişimleri)
  • Teslim edilemeyen mesajlar gönderme (konulara abone yok)
  • Veri bağlayan ancak göndermeyen istemciler

Buna dayanarak, kesinlikle mümkün olduğunu düşünüyorum. Bu yüzden bu özelliğin kullanım durumları nelerdir?

Standart neden böyle bir mekanizmaya izin veriyor, konuların sahibini izlemek karmaşık mı? Bunun yerine, sadece müşterilerin kendi konularına abone olmalarına izin verir.

Düşünebileceğim bir kullanım örneği, bir istemcinin yayınlanan verilerini doğrulayabilmesidir.

Yanıtlar:


19

Evet, kendi oluşturduğu bir konuya abone olmak mümkündür.

Bir MQTT istemcisi aynı anda hem yayıncı hem de abone olabilir. MQTT terimleriyle, bir istemci hem subscribersve öğelerini içerir publishers.

Bu özelliğin kullanım durumları nelerdir?

Olası bir kullanım durumu (sanırım), x-topictarafından oluşturulan bir konuya abone olan üç istemci (x, y, z) olup olmadığını varsayalım x. Bir ileti her yayınlandığında, x-topico konuya abone olan herkes iletiyi alır. Eğer ybir konuya mesaj yayımlayan x-topiceğer, (O bitti olabilir tahmin) xo, o mesajları almayacak bir konu oluşturdu rağmen bu konuyla abone etmez.

Bu nedenle, bu konunun orijinal yaratıcısı olmasına rağmen, bir müşterinin mesaj almak için bir konuya abone olması gerekir.

Ancak mekanizma aracılar aracı olarak kullanılarak kontrol edilebilir.


Evet, bu seçenek aklımdan geçti. Yalnızca, yeni bir istemcinin zaten başka bir yayıncı tarafından kullanılan mevcut bir konuda yayınlayıp yayınlayamayacağından emin değildim.
Bence Kaulics

Evet, yeni bir müşteri mevcut bir konuda yayın yapabilir. İstemcilerin doğrudan iletişim kurmadığını, her yayın ve aboneliğin bir aracı aracılığıyla gerçekleştiğini unutmayın.
bravokeyl

0

Evet.

MQTT istemcileri, bir bulut veya başka bir aygıt olabilecek bir aracıya bağlanır.

Konu yaratma gibi bir şey yoktur. Mesaj için başlık olarak kullanılırlar. Dolayısıyla, müşteriniz bir konuya abone olduysa ve o konu hakkında bir şey yayınlıyorsa, ileti aracı aracılığıyla tekrar müşteriye alınır.

İyi broker örnekleri, cihazlarda çalıştırmak için Mosquitto ve bulut tabanlı Broker için CloudMqtt


4
Bu, bilgi gövdesini, bir yıl önce verilen diğer cevabın ötesine taşımaz. Cevaplanan sorulara bile yeni cevaplar ekleyebilirsiniz. Ancak, bu cevaplar soruya veya çözüme ilişkin ek veya güncellenmiş bilgiler sunmalıdır.
Helmar
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.