首页 > 解决方案 > 如何通过 paho mqqt js 客户端强制非安全连接?

问题描述

当浏览器尝试在 Firefox 中连接到我的 mosquitto 服务器时,我在登台但在开发中没有收到此错误:

SecurityError:操作不安全。

我没有使用 ssl 运行系统,我知道我应该解决这个问题,但暂时我想让它工作。

  function mqtt() {
    // Create a client instance
    client = new Paho.MQTT.Client('localhost', 9091, "", "tablet_1");
    // set callback handlers
    client.onConnectionLost = onConnectionLost;
    client.onMessageArrived = onMessageArrived;
    client.reconnect = true
    willMessage = new Paho.MQTT.Message("Rescue me");
    connectOptions = {
        userName: 'server',
        password: '1234',
        // willMessage: willMessage,
        onSuccess:onConnect,
        cleanSession: true,
        reconnect: true,
        useSSL: false
    }
    // connect the client
    client.connect(connectOptions);
  }

这是我在 mosquitto 中的端口配置:

listener 1883
listener 8883
cafile ca.crt
certfile server.crt
keyfile server.key
tls_version tlsv1.2

listener 9091
protocol websockets

标签: javascriptsslmqttmosquitto

解决方案


正如评论中所讨论的那样,当主机页面通过 https 加载时,这是浏览器阻止不安全的内容。

您可以通过单击 URL 栏中的盾牌来强制混合内容,但这不是正确的方法。

正确的解决方案是在任何地方运行 HTTPS/TLS(甚至在 dev/staging 中)。


推荐阅读