Чи потрібно створювати кількість осей тем MQTT для x кількості пристроїв?


9

В даний час в моєму проекті, в якому контролер (клієнт) посилає дані датчика на сервер і отримує зворотній зв'язок з сервером з деякими додатковими даними, використовує протокол MQTT для спілкування. У ньому є дві окремі теми для клієнта та сервера.

Наприклад:

Topic1 - Клієнт (ПОДАВАТИ), Сервер ( ПУБЛІКУВАТИ ) Topic2 - Клієнт (ВИДАВЛЕННЯ ), Сервер (
ПОДАВАННЯ)

Але якщо цей проект є випадком використання більшої програми, скажімо, десь потрібно встановити 5000 пристроїв.

Отже, чи буде потрібно для створення 5000 різних тем як для клієнта, так і для сервера? Або з меншими темами це можна зробити і як?


1
Чому ви вважаєте, що проблема мати багато тем?
hardillb

1
Можливо, тому, що програмне забезпечення повинно було б ними керувати.
Мауг каже, що повернути Моніку

1
@hardillb Це не проблема ... просто було цікаво ... але чи може тема MQTT мати підтему?
ron123456

2
Звичайно, теми є ієрархічними, тому будь-яка схема може бути розроблена. Sparkplug s3.amazonaws.com/cirrus-link-com / ... має кілька тем на крайовий вузол і пристрій за краю вузла.
Підтримка Gambit

подивіться на цю shiftr.io/shiftr-io/demo
jsotola

Відповіді:


5

Від клієнта до сервера ви можете упакувати ідентифікатор клієнта в корисну навантаження, наприклад, якщо це JSON, один з ключів може мати значення клієнтського ідентифікатора.

Відповідь від сервера до клієнта повинна містити ідентифікатор клієнта, щоб брокер не передавав повідомлення, а надсилав його безпосередньо одному підключеному клієнту.

Одночасно ви можете підписати свій сервер на щось на зразок: "request / +", і кожен клієнт опублікує на "request / {client-id-1}", "request / {client-id-2}" та сервер отримає обидва лише з однією підпискою.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.