小程序使用mqtt
https://blog.csdn.net/ngl272/article/details/87887885
//开头引入mqtt
var mqtt = require('../../utils/mqtt-2.18.8.min.js') //mqtt
。。。
onLoad里加入:
this.doConnect();//连接mqtt服务器
。。。
doConnect(){
//https://blog.csdn.net/ngl272/article/details/87887885
const options = this.initMqttOptions();
console.log(options)
const client = mqtt.connect('wx://192.168.1.xxx',options)
client.on('connect', function () {
console.log('连接mqtt服务器成功')
//订阅主题
client.subscribe('runman', function (err) {
if (!err) {
console.log('订阅主题成功!');
}
})
})
//接收消息监听
client.on('message', function (topic, message) {
// message is Buffer
console.log('收到消息:'+message.toString())
//关闭连接 client.end()
})
},
//IoT平台mqtt连接参数初始化
initMqttOptions(deviceConfig) {
//CONNECT参数,https://github.com/mqttjs/MQTT.js#connect
const options = {
keepalive: 60, //60s
clean: true, //cleanSession不保持持久会话
protocolVersion: 4 //MQTT v3.1.1
}
//1.生成clientId,username,password
options.host = "192.168.1.xxx";
options.port = 12345;
options.password = "ppppppp";
options.username = "uuuuuuuuusername";
options.clientId='mqttjs_' + Math.random().toString(16).substr(2, 8);
return options;
},
解决:
https://developers.weixin.qq.com/community/develop/doc/000ccaaad50128d1a90acb45b5bc00
//mqtt.connect('wx://xxxxxxxxxx', options);
//wx:// xx.xx.xxxxxxx
//协议版本 链接地址
//微信小程序这个版本 作者自己封装了一层 wx表示普通的ws协议连接 wxs表示加密之后的wss协议连接。
小程序最多只能有5个socket连接,所以要在合理的组件生命周期内关闭页面的mqtt连接,参考: