我正在尝试使用以下软件包使用TLS实现node.js mqtt客户端;
https://www.npmjs.com/package/mqtt#client
在不使用TLS的情况下运行mqtt客户端的代码如下;
var mqtt = require('mqtt') var client = mqtt.connect('mqtt://test.mosquitto.org') client.on('connect', function () { client.subscribe('presence') client.publish('presence', 'Hello mqtt') }) client.on('message', function (topic, message) { // message is Buffer console.log(message.toString()) client.end() })
应该如何修改以上代码以在mqtt客户端上使用TLS?
mosca MQTT代理是使用以下命令独立运行的;
mosca --key ./tls-key.pem --cert ./tls-cert.pem --http-port 3000 --http-bundle --http-static ./ | pino
应该足以protocol将URL 的一部分更改为mqtts://
protocol
mqtts://
mqtts://test.mosquitto.org。
mqtts://test.mosquitto.org
自签名证书
connect使用自签名证书时,可以将以下选项传递给函数(仅用于测试目的):
connect
mqtt.connect('mqtts://test.mosquitto.org', { rejectUnauthorized: false });