В настоящее время я работаю над двунаправленной связью между некоторыми датчиками IoT и мобильным приложением, используя каналы Pusher.
Мне удалось заставить Пушера работать на узлах IoT с помощью библиотеки Arduino, а также в моем приложении React Native.
Тем не менее, я столкнулся с некоторым препятствием. Мои датчики IoT не способны генерировать полезные нагрузки и массивы JSON (они передают пакеты по 30 показаний с интервалом в 30 секунд) из-за ограничений памяти. Каждое чтение может иметь длину до 60 символов в необработанном виде, а полная полезная нагрузка, отправляемая каждые 30 секунд, будет не менее 1800 байт, а затем есть данные заголовка (токен аутентификации и данные сеанса для контекста датчика).
Я не хочу анализировать эти шестнадцатеричные данные в моем приложении React Native (поскольку некоторые из них поступают от проприетарных датчиков, где протокол не может быть разглашен), поэтому необходимо, чтобы это происходило в моем API ExpressJS (в настоящее время обрабатывает аутентификацию и исторические данные до входит в Pusher и проверяет связь с приложением React Native.
Мои вопросы:
- Если сенсор отправил POST-запрос в мой Express API, в котором маршрут выполнял обработку из шестнадцатеричного в хороший JSON (с полнотекстовыми значениями!) - могу ли я использовать клиент Pusher для передачи этих данных в правильный канал? Вместо того, чтобы датчик говорил прямо с Пушером?
- Есть ли способ связать службу Pusher через мой API, чтобы приложение React Native «указывало» на мой API за обновления, а не прямо на Pusher?
Вот архитектура, которую я пытаюсь создать - надеясь, что те из вас, кто имеет опыт работы с Pusher, могут сказать мне, если это возможно:
Я видел серверную библиотеку «pusher-http-node», но нет четкого описания того, почему это будет использоваться.
Действительно надеюсь, что мне не нужно идти по маршруту MQTT и иметь свой собственный микро-сервис (чего я хотел избежать, учитывая проблемы с расходами и масштабируемостью).