Как аутентифицировать потоки mqtt?

Я пытаюсь создать приложение mqtt в реальном времени, которое отправляет данные с мобильных устройств на серверную часть, которая обрабатывает эти данные. Как лучше всего реализовать идентификацию в этих потоках mqtt? Я имею в виду, как я могу узнать, какие данные поступают от какого устройства/пользователя? Должен ли я создавать несколько потоков или мне следует поместить в поток переменную, которая идентифицирует пользователя?


person Ken Vernaillen    schedule 25.12.2013    source источник


Ответы (1)


Из того, что вы описываете, я бы рекомендовал использовать единую тему для каждого мобильного устройства.

  • устройства/устройство1/данные
  • устройства/устройство1/статус
  • устройства/устройство2/данные
  • устройства/устройство2/статус

Когда вы это сделаете, легко получить все данные с помощью подписки на устройства/+/данные. Вы также можете использовать devices/+ напрямую, если ваш клиент только публикует данные и вас не интересуют другие вещи. В вашем веб-браузере или брокере (см. мой ответ на другой ваш вопрос) вы получаете сообщение и можете определить с помощью темы, какой клиент отправил сообщение.

Еще одним шагом, чтобы сделать сценарий более безопасным, было бы разрешить устройству1 публиковать только на устройства/устройство1/#. Это можно реализовать через плагин в MQTT-брокере. На примере здесь для брокера HiveMQ.

Надеюсь, это поможет, Крис

person Christian Götz    schedule 25.12.2013