【发布时间】:2021-11-03 21:21:59
【问题描述】:
我想通过 TLS 加密与我的 mosquitto 服务器建立 Websocket 连接。但是我什至没有得到一个运行官方 mosquitto 服务器的简单示例。
<!DOCTYPE html>
<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="https://unpkg.com/mqtt/dist/mqtt.min.js"></script>
<script>
// Initialize a mqtt variable globally
console.log(mqtt)
// connection option
const options = {
clean: true, // retain session
connectTimeout: 4000, // Timeout period
// Authentication information
clientId: 'test_client',
}
// Connect string, and specify the connection method by the protocol
// ws Unencrypted WebSocket connection
// wss Encrypted WebSocket connection
// mqtt Unencrypted TCP connection
// mqtts Encrypted TCP connection
// wxs WeChat applet connection
// alis Alipay applet connection
const connectUrl = 'wss://test.mosquitto.org:8081/mqtt'
const client = mqtt.connect(connectUrl,options)
client.on('reconnect', (error) => {
console.log('reconnecting:', error)
})
client.on('error', (error) => {
console.log('Connection failed:', error)
})
client.on('message', (topic, message) => {
console.log('receive message:', topic, message.toString())
})
</script>
</head>
<body>
<div id="logger"></div>
</body>
</html>
在网络日志中我可以看到这些语句:
...
[1]</</</v.prototype._setupReconnect
https://unpkg.com/mqtt/dist/mqtt.min.js:1:14126
[1]</</</v.prototype._cleanUp
https://unpkg.com/mqtt/dist/mqtt.min.js:1:15261
[1]</</</v.prototype._setupStream/this.connackTimer<
https://unpkg.com/mqtt/dist/mqtt.min.js:1:7007
(Async: setTimeout handler) [1]</</</v.prototype._setupStream
https://unpkg.com/mqtt/dist/mqtt.min.js:1:6920
[1]</</</v.prototype._reconnect
https://unpkg.com/mqtt/dist/mqtt.min.js:1:13732
[1]</</</v.prototype._setupReconnect/e.reconnectTimer<
https://unpkg.com/mqtt/dist/mqtt.min.js:1:14195
(Async: setInterval handler)
...
Firefox (Mozilla Firefox for Linux Mint 89.0 (64-bit)) 给出错误消息 Firefox 无法在 wss://test.mosquitto.org:8081/mqtt 建立与服务器的连接。
也许有人可以提示我的设置有什么问题?还是一个已知的有效 JavaScript 示例?
提前致谢, 克里斯托夫
【问题讨论】:
-
目前test.mosquitto.org上的websocket接口好像不太好,建议你明天再试试或者换个例子服务器(比如hivemq的)
标签: javascript ssl firefox mosquitto