原生小程序与mqtt通讯指南
const mqtt = require('../../utils/mqtt') //引入mqtt.js 网上下载 切记要新版的。
var client = null
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad() {
this.connectmqtt();
},
connectmqtt(){
const option = {
keepalive: 3600, //心跳机制
connectTimeout: 1000, //响应时间
port: 8084, //端口号
username: 'emqx', //用户名
password: 'public1234', //密码
clientId: 'wsy', //这个只要和MQTT服务器的id不一致就可以
}
注意‘wxs://这里跟上你的域名
client = mqtt.connect('wxs://z4171ee2.ala.cn-hangzhou.emqxsl.cn/mqtt', option)
client.on('connect', (e) => {
console.log('服务器连接成功')
//注意: client.subscribe(你要订阅的主题)
client.subscribe('dataReportBack/231009134713892003084', {
qos: 0
}, function (err) {
if (!err) {
console.log('订阅成功')
}
})
})
client.on('message', function (topic, message) {
let tem = {}
tem = JSON.parse(message);
console.log(tem,'tem')
//注意 这里console.log(打印出内容,正常是mqttf发送过来的)
console.log(message.toString());
})
client.on('error', (error) => {
console.log('连接失败', error)
});
client.on('reconnect', () => {
console.log("正在重新连接")
});
client.on('pingresp', () => {
console.log('收到心跳响应');
setInterval(() => {
client.pingreq();
}, 30000);
});
},
调试器打印结果为这样就成功啦