Невозможно общаться без переадресации портов

Привет, у нас есть проект IOT, который имеет работающий веб-сайт + приложение для Android, созданное на сервере Node.js и использующее протокол HTTP с REST API для связи со встроенным устройством CC3200 от Texas Instruments.

Проект управляет нагревательными элементами, отправляя сообщения из Интернета или мобильного телефона на CC3200, который является нашим блоком управления, который отправляет команды нагревательным элементам.

Проблемы :

  1. Нам требуется проброс портов на определенных портах, нам нужно избавиться от него
  2. CC3200 при публикации изменений в Интернете изменения не видны, пока страница не будет обновлена.

Я исследовал и обнаружил, что есть два возможных решения: либо использовать IO.js, либо переключиться на MQTT. Но на этом заключительном этапе проекта оба решения кажутся начатыми с самого начала.

Любая помощь в этом будет оценена.

PS: перенаправление портов - более серьезная проблема


person dexter87    schedule 21.10.2015    source источник


Ответы (1)


Большинство решений обычно основаны на длительном соединении, инициированном встроенным устройством, с внешним сервером, чтобы избавиться от проблем с переадресацией портов. Как вы процитировали, MQTT позволяет вам делать именно это, но то же самое можно сказать и о длинном опросе HTTP или даже Websockets.

Использование одного из вышеперечисленных не обязательно означает начало с самого начала, но, безусловно, требует некоторой дополнительной работы, чтобы реализовать эту логику на встроенном устройстве из первых рук и настроить общедоступный безопасный брокер сообщений ( например MQTT) с другой.

Другим решением может быть использование UPnP IGD для динамического добавления записей переадресации портов на домашнем шлюзе ( если он поддерживается), или используйте методы STUN. Обратите внимание, однако, что это решение публично выставит устройство внешнему миру, поэтому вы можете обратить внимание на аспекты безопасности, которые это подразумевает.

См. также:

person Halim Qarroum    schedule 26.10.2015