Я создал мобильное приложение, которое использует безопасный MQTT (8883) для связи, однако похоже, что порт 8883 заблокирован многими интернет-провайдерами и сетями. Я читал несколько блогов, которые рекомендуют использовать 443 в таких случаях, однако я не уверен, действительно ли это решит проблему. Каковы недостатки изменения защищенного порта MQTT по умолчанию (8883) на 443. Может ли кто-нибудь поделиться своим мнением об использовании порта 443 для MQTT?

Примечание. Я использую брокер EMQ MQTT (emqtt) с клиентом Paho MQTT.

0
Zac 31 Мар 2019 в 21:12

1 ответ

Лучший ответ

Список распознанных портов помогает гарантировать, что вы можете запускать несколько служб в их конфигурации по умолчанию на машине без их конфликтов, как правило, они фактически не влияют на работу службы.

С некоторыми очень хорошо используемыми протоколами (например, HTTP и HTTPS) администраторы сети могут делать предположения о.

Простое перемещение порта для собственного MQTT (с TLS) с 8883 на 443, чтобы обойти блокировку портов сетями (*), вероятно, на самом деле не решит проблему. Это связано с тем, что типы сетей, в которых используются эти типы настроек брандмауэра, также имеют тенденцию проводить прозрачное прокси.

Если вам нужно решение, которое будет работать даже в худшем случае, то, вероятно, лучшим вариантом будет запуск MQTT через Secure Websockets (который загружается с HTTPS). Большинство реализаций клиентской библиотеки Paho (вы не говорите, что используете, поэтому можете сказать наверняка) в наши дни поддерживают как собственный MQTT, так и MQTT через Websockets, и им может быть предоставлен список URI брокера, поэтому, как только брокер настроен на поддерживают оба, вы можете попытаться подключиться через собственный MQTT, а затем вернуться к MQTT через веб-сокеты, если соединение не удастся.

0
hardillb 2 Апр 2019 в 09:43