【问题标题】:How can i fix Mixed Content issue in mqtt?如何解决 mqtt 中的混合内容问题?
【发布时间】:2020-06-08 07:24:48
【问题描述】:

我需要通过 websocket 连接到代理。

<script src="https://cdnjs.cloudflare.com/ajax/libs/paho-mqtt/1.0.1/mqttws31.min.js" type="text/javascript"></script>
<script>
    // Create a client instance
    client = new Paho.MQTT.Client("broker.hivemq.com", 8000, "" , "gokden");


    // connect the client
    client.connect({onSuccess:onConnect}); 

    function onConnect(){
        console.log("Connected!");
    }

</script>

这是我的连接代码,但我收到此错误:

mqttws31.min.js:36 混合内容:“karantinagunlugum.com”的页面通过 HTTPS 加载,但尝试连接到不安全的 WebSocket 端点“ws://broker.hivemq.com:8000/”。此请求已被阻止;此端点必须在 WSS 上可用。

【问题讨论】:

  • 你试过不使用 SSL 吗?
  • 是的,但我得到了另一个错误
  • broker.hivemq.com 上的 8000 端口不使用 SSL,所以 edit 显示另一个错误的问题

标签: javascript websocket mqtt paho broker


【解决方案1】:

这里有 2 个相关但独立的问题。

  1. broker.hivemq.com 不支持 Secure MQTT over Websockets (wss://),这就是当您尝试连接时连接在 30 秒后关闭的原因
  2. 您正在尝试从通过 HTTPS 加载的页面进行连接。由于浏览器中的安全源策略,安全加载的页面无法连接到不安全的资源,这是第二个错误告诉您的内容。

你有两个选择

  1. 为您的站点关闭 HTTPS。这不是一个好主意。
  2. 设置您自己的代理,支持 Websocket 上的 Secure MQTT。

除了基本的测试和游戏之外,您不应该将 broker.hivemq.com 用于其他任何事情,如果您想做一些严肃的事情,您应该为适当托管的代理付费或运行自己的代理。

【讨论】:

  • 非常感谢。我使用 hivemq 因为你说的测试。您能否免费推荐任何基于 Websocket 的 Secure MQTT,或者我必须设置自己的代理吗?
猜你喜欢
  • 2016-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-07
  • 1970-01-01
  • 2015-05-03
相关资源
最近更新 更多