Bisakah klien MQTT berlangganan topik yang dibuat sendiri?

18

Dalam pemahaman saya, dalam MQTT topik dibuat setelah klien menerbitkan sesuatu dengan nama topik yang sesuai.

Tidak perlu mengkonfigurasi topik, mempublikasikannya sudah cukup.

Dari sini .

Apakah mungkin bagi klien untuk berlangganan topiknya sendiri, setelah dipublikasikan, membuatnya? Saya tidak dapat menemukan batasan di dalamnya dalam spesifikasi . Juga tidak terdaftar sebagai perilaku abnormal yang mungkin:

5.4.8 Mendeteksi perilaku abnormal

Implementasi server dapat memantau perilaku Klien untuk mendeteksi potensi insiden keamanan. Sebagai contoh:

  • Upaya koneksi berulang
  • Upaya otentikasi berulang
  • Pemutusan koneksi yang tidak normal
  • Pemindaian topik (upaya mengirim atau berlangganan banyak topik)
  • Mengirim pesan yang tidak terkirim (tidak ada pelanggan ke topik)
  • Klien yang terhubung tetapi tidak mengirim data

Berdasarkan ini, saya pikir itu pasti mungkin. Jadi saya tertarik pada kasus penggunaan apa dari fitur ini?

Mengapa standar mengizinkan mekanisme seperti itu, apakah akan rumit untuk melacak pemilik topik? Jadi alih-alih itu hanya memungkinkan klien untuk berlangganan topik mereka sendiri.

Satu kasus penggunaan yang dapat saya pikirkan adalah bahwa dengan cara ini klien dapat memverifikasi data yang dipublikasikan.

Bence Kaulics
sumber

Jawaban:

19

Ya, adalah mungkin untuk berlangganan ke topik yang dibuat sendiri.

Klien MQTT dapat menjadi penerbit & pelanggan secara bersamaan. Dalam istilah MQTT, klien menyertakan keduanya subscribersdan publishers.

Saya tertarik pada kasus penggunaan apa dari fitur ini?

Kasus penggunaan yang mungkin (saya berasumsi) adalah bahwa, anggaplah jika ada tiga klien (x, y, z) berlangganan topik yang x-topicdibuat oleh x. Setiap kali pesan dipublikasikan x-topic, semua orang yang berlangganan topik itu akan menerima pesan itu. Jika ymenerbitkan pesan ke suatu topik x-topic(saya kira itu bisa dilakukan), jika xtidak berlangganan ke topik itu meskipun itu menciptakan topik, ia tidak akan menerima pesan itu.

Jadi klien perlu berlangganan ke suatu topik untuk menerima pesan meskipun ini adalah pencipta asli dari topik itu.

Tetapi mekanismenya dapat dikontrol dengan menggunakan broker sebagai media.

bravokeyl
sumber
Ya, opsi ini terlintas di benak saya. Hanya saja, saya tidak yakin apakah klien baru dapat mempublikasikan topik yang sudah ada, yang sudah digunakan oleh penerbit lain.
Bence Kaulics
Ya, klien baru dapat menerbitkan ke topik yang ada. Ingat bahwa klien tidak berkomunikasi secara langsung, setiap publikasi dan berlangganan terjadi melalui broker.
bravokeyl
0

Iya.

Klien MQTT terhubung ke broker yang dapat berupa cloud atau perangkat lain.

Tidak ada yang namanya penciptaan topik. Mereka digunakan sebagai tajuk untuk pesan. Jadi jika klien Anda telah berlangganan suatu topik dan jika mempublikasikan sesuatu tentang topik itu maka pesan akan diterima melalui broker lagi.

Contoh broker yang baik adalah Mosquitto untuk berjalan di perangkat dan CloudMqtt untuk Broker berbasis cloud

Hitesh Pratyush V
sumber
4
Ini tidak benar-benar memperluas tubuh pengetahuan di luar apa yang sudah diberikan jawaban yang lain setahun yang lalu. Anda bebas menambahkan jawaban baru bahkan untuk pertanyaan yang dijawab. Namun, jawaban tersebut harus menawarkan wawasan tambahan atau yang diperbarui ke dalam pertanyaan atau solusinya.
Helmar