Я пытаюсь создать приложение mqtt в реальном времени, которое отправляет данные с мобильных устройств на серверную часть, которая обрабатывает эти данные. Как лучше всего реализовать идентификацию в этих потоках mqtt? Я имею в виду, как я могу узнать, какие данные поступают от какого устройства/пользователя? Должен ли я создавать несколько потоков или мне следует поместить в поток переменную, которая идентифицирует пользователя?
Как аутентифицировать потоки mqtt?
Ответы (1)
Из того, что вы описываете, я бы рекомендовал использовать единую тему для каждого мобильного устройства.
- устройства/устройство1/данные
- устройства/устройство1/статус
- устройства/устройство2/данные
- устройства/устройство2/статус
Когда вы это сделаете, легко получить все данные с помощью подписки на устройства/+/данные. Вы также можете использовать devices/+ напрямую, если ваш клиент только публикует данные и вас не интересуют другие вещи. В вашем веб-браузере или брокере (см. мой ответ на другой ваш вопрос) вы получаете сообщение и можете определить с помощью темы, какой клиент отправил сообщение.
Еще одним шагом, чтобы сделать сценарий более безопасным, было бы разрешить устройству1 публиковать только на устройства/устройство1/#. Это можно реализовать через плагин в MQTT-брокере. На примере здесь для брокера HiveMQ.
Надеюсь, это поможет, Крис
person
Christian Götz
schedule
25.12.2013