【发布时间】:2021-04-30 16:43:47
【问题描述】:
javascript mqtt websocket 连接在 localhost 中可以正常工作,而不是 在 https 服务器中工作
代码
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Hello MQTT World</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="paho-mqtt.js"></script>
</head>
<body>
<script>
var client = new Paho.Client('myserver.com',8083,'asdfg');
client.connect({
reconnect:true,
onSuccess:function(){
console.log('Connected');
client.subscribe("/abcd/+/#"); // Where 16 is the bspid
}
});
client.onMessageArrived=function(message){
console.log(message);
};
</script>
<ul id="logger"></ul>
</body>
</html>
无名氏
> Error paho-mqtt.js:1054 Mixed Content: The page at
> 'https://myserver.com/pis/monitoring/mqtt.html' was loaded over HTTPS,
> but attempted to connect to the insecure WebSocket endpoint
> 'ws://myserver.com:8083/mqtt'. This request has been blocked; this
> endpoint must be available over WSS.
> LibraryFactory.ClientImpl._doConnect @ paho-mqtt.js:1054
> LibraryFactory.ClientImpl.connect @ paho-mqtt.js:887 Client.connect @
> paho-mqtt.js:2028 (anonymous) @ mqtt.html:12 paho-mqtt.js:1054
> Uncaught DOMException: Failed to construct 'WebSocket': An insecure
> WebSocket connection may not be initiated from a page loaded over
> HTTPS.
> at ClientImpl.LibraryFactory.ClientImpl._doConnect (https://myserver.com/pis/monitoring/paho-mqtt.js:1054:19)
> at ClientImpl.LibraryFactory.ClientImpl.connect (https://myserver.com/pis/monitoring/paho-mqtt.js:887:10)
> at Client.connect (https://myserver.com/pis/monitoring/paho-mqtt.js:2028:12)
> at https://myserver.com/pis/monitoring/mqtt.html:12:8 LibraryFactory.ClientImpl._doConnect @ paho-mqtt.js:1054
> LibraryFactory.ClientImpl.connect @ paho-mqtt.js:887 Client.connect @
> paho-mqtt.js:2028 (anonymous) @ mqtt.html:12
【问题讨论】:
标签: javascript websocket https mqtt paho