我如何解决 mqtt 中的混合内容问题?

How can i fix Mixed Content issue in mqtt?

我需要通过 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 使用。

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

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

你有2个选择

  1. 为您的站点关闭 HTTPS。这不是个好主意。
  2. 设置您自己的支持安全 MQTT over Websockets 的代理。

除了基本的测试和播放之外,您真的不应该将 broker.hivemq.com 用于任何其他用途,如果您想做任何严肃的事情,您应该支付适当托管的经纪人或 运行 您的拥有。