我需要通过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 个相关但独立的问题。
- broker.hivemq.com 不支持基于Websockets的安全MQTT(wss://(,这就是为什么当您尝试连接时,连接会在30秒后关闭 的原因
- 您正在尝试从通过 HTTPS 加载的页面进行连接。由于浏览器中的安全源策略,安全加载的页面无法连接到不安全的资源,这就是第二个错误告诉您的。
您有 2 种选择
- 为您的网站关闭 HTTPS。这不是一个好主意。
- 设置您自己的代理,支持通过 Websocket 的安全 MQTT 。
除了基本的测试和播放之外,您不应该真的将 broker.hivemq.com 用于任何其他事情,如果您想做任何严肃的事情,您应该为正确托管的经纪人付费或运行自己的经纪人。