Мобильное приложение для общения в Azure. - PullRequest
0 голосов
/ 08 ноября 2019

Я хочу внедрить следующую систему.

Есть пользователи, и у каждого пользователя будет устройство IoT. Пользователь должен быть в состоянии сделать следующее:

  1. Войти с помощью своей электронной почты и пароля.

  2. Управление устройством IoT в режиме реального времени (пользователь выполнит некоторую операцию на устройстве IoT, и результат будет мгновенно отображен в приложении.

  3. Просмотр состояния устройства IoT в режиме реального времени. Если что-то изменится на устройстве IoT, оно должно отразиться на приложении в реальном времени.

Мне было интересно, можно ли это сделать с помощью Azure IoT Hub. Я столкнулся с архитектурой, в которой устройство подключено к концентратору IoT, а приложение подключено к signalR. Сообщения от устройства IoT будут отправляться в IoT Hub, который будет обновлять приложение с помощью signalR.

Но есть ли способ, которым мы не можем иметь дополнительный компонент, такой как signalR? Можно ли подключить устройство IoT и мобильное приложение напрямую к Azure IoT-хабу и обмениваться данными между ними без какой-либо сущности между ними, кроме IoT-хаба?

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

Любая помощь в этом отношении приветствуется.

Ответы [ 2 ]

0 голосов
/ 15 ноября 2019

"Просмотр состояния устройства IoT в режиме реального времени. Если что-то меняется на устройстве IoT, оно должно отражаться в приложении в режиме реального времени."

Для этой интеграции EventGrid (https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-event-grid)помог бы. Для телеметрии в реальном времени, как сказал Маттис, SignalR будет лучшим выбором. Если у вас все в порядке с некоторой задержкой (скажем, 10 секунд), то также можно использовать аналитические сведения о временных рядах Azure.

0 голосов
/ 08 ноября 2019

Вы могли бы абсолютно обойтись без SignalR. Вы можете использовать IoT Hub Service SDK , чтобы отправлять C2D-сообщения на ваше устройство с телефона, а также прослушивать телеметрию устройства с тем же SDK.

Однако это, вероятно, будетЛучше иметь некоторые ограничения на то, что вы можете делать с этим SDK. Если пользователь сначала должен войти в систему, я так понимаю, что они не получают доступ ко всем устройствам в вашем приложении? Использование какого-либо доступа на основе ролей может быть предпочтительным, для этого вы должны создать API, который затем использует Service SDK для предоставления вам данных.

Кроме того, даже если вы можете напрямую прослушивать данные устройствас вашего телефона, это означает, что если у вас плохой прием / Wi-Fi, данные могут быть не получены. Возможно, вы захотите хранить его где-нибудь? Я не знаю подробностей о вашем приложении, но если вы захотите прослушать события из этого хранилища и отправить его в ваше приложение ... SignalR может быть не самой плохой идеей.

...