我创建了一个移动应用程序,该应用程序使用安全的MQTT(8883)进行通信,但是看起来端口8883被许多ISP和网络阻止。 我读过一些博客,建议在这种情况下使用443,但是我不确定这是否真的可以解决问题。将默认的安全MQTT端口(8883)更改为443有什么缺点。有人可以在使用端口443进行MQTT时分享他们的反馈吗?
注意::我在Paho MQTT客户端上使用EMQ MQTT(emqtt)代理。
答案 0 :(得分:0)
此处有已识别端口的列表,可帮助确保您可以在计算机上以其默认配置运行多个服务而不会发生冲突,因为它们通常不会真正影响服务的运行方式。
使用一些非常常用的协议(例如HTTP和HTTPS),网络管理员可以对此进行假设。
仅将本机MQTT(带有TLS)的端口从8883移动到443,以通过网络获得圆形端口阻塞(*),实际上可能无法解决问题。这是因为部署了这些类型的防火墙设置的网络类型也倾向于进行透明代理。
如果您想要一种即使在最坏的情况下也可以运行的解决方案,那么最好通过安全Websocket(从HTTPS引导)运行MQTT。如今,大多数Paho客户端库实现(您不说自己使用的是哪个,因此可以肯定地说)在Websockets上都支持本机MQTT和MQTT,并且可以提供代理URI列表,因此一旦将代理设置为支持两者,您可以尝试通过本机MQTT连接,如果连接失败,则通过Websocket退回到MQTT。