IoT Core опубликовать в теме в другом реестре

Я пытаюсь опубликовать сообщение с устройства в одном реестре на устройство в другом реестре.

Я обнаружил, что вы можете публиковать только темы в реестре, в котором находится ваше устройство, и если вы попытаетесь опубликовать тему в другом реестре, вы получите EOFException и вы отключаетесь от сервера MQTT.

Поток, на который я пытался пойти, у меня есть registry мобильных устройств (телефонов), которые имеют свои собственные темы, чтобы делать вещи, но они также должны общаться с hub registry который связывается с устройствами IoT (получает / обновляет информацию об устройстве), которые также имеют свои собственные IoT registry

Как я уже сказал, я могу публиковать сообщения в темах моего реестра без ошибок, но как только я пытаюсь сделать это вне своего реестра, я получаю сообщение об ошибке.

Нет ли возможности вести межрегиональную связь?

Что такое "стандартный" способ общения между устройствами через разные темы, если вы не можете сделать кросс-реестр?

1 ответ

Решение

Вы можете достичь своей цели с помощью облачных функций, которые обрабатывают полученные данные с помощью Cloud IoT Core и PubSub в реестре A, а затем отправляют эти данные в виде сообщения конфигурации в устройство B.

Поток будет выглядеть примерно так: Устройство 1 > Реестр серверов MQTT A > Реестр Pub/Sub Topic A > Облачные функции> Сообщение конфигурации HTTP для> Реестр B > Реестр серверов MQTT B > Устройства 2

В этом руководстве вы можете увидеть, как я писал об Cloud IoT Core, и я показываю, как отправлять сообщения конфигурации на устройства. В вашем случае единственное изменение, которое вам нужно, это то, что сообщение конфигурации будет отправлено на устройство в другом реестре.

Ссылка на учебник: https://medium.com/google-cloud/gps-cellular-asset-tracking-using-google-cloud-iot-core-firestore-and-mongooseos-4dd74921f582

Часть кода, которая отправляет сообщения конфигурации, но в моем коде реестр является постоянной переменной: https://github.com/alvarowolfx/asset-tracker-gcp-mongoose-os/blob/master/functions/index.js#L22

Надеюсь, что это поможет вам.

Другие вопросы по тегам