线上例子:https://data.avuejs.com/build/1828630631186333697
自定义组件视频教程:https://www.bilibili.com/video/BV1dW421R7f1
自定义组件核心代码(下版本会直接做一个独立组件可直接选择):
<template> <div class="text"> data:{{data}} </div> </template> <script> export default{ data(){ // mqtt连接账号在这里创建:https://iot.javablade.com/iot/mqtt/account return{ params:['LightSwitch'], check:null, time:500, productKey:'JkerjK97oub', deviceName:'HqDHKmXjVGD2yMVn', config:{ clientId:new Date().getTime(), username:'bladexiot', password:'bladexiot', connectTimeout: 5000 }, url:'wss://broker.javablade.com', data:[], client:null } }, created(){ this.client = mqtt.connect(this.url, this.config); console.log(this.url,this.config); this.client.on('connect', () => { console.log('mqtt链接成功') this.onSubscribe(); // 监听消息 this.onMessage(); //循环监听 this.onListen(); }) }, methods:{ getTopicPrefix () { const prefix = "/blade/sys"; return `${prefix}/${this.productKey}/${this.deviceName}/`; }, onListen () { this.params.forEach(ele => { this.check = setInterval(() => { if (this.client.connected == true) { this.sendProperty({ identifier: ele }) } else { clearInterval(this.check) } }, this.time) }) }, sendProperty (data) { let topic = this.getTopicPrefix()+'thing/service/property/get'; const req = { id: new Date().getTime(), version: '1.0', params: { ...data } }; const message = JSON.stringify(req); this.publish(topic, message); }, publish (topic, message) { this.client.publish(topic, message, (err) => { if (err) { console.log(err) } }); }, onSubscribe () { // 设备响应云端获取设备属性 this.client.subscribe(this.getTopicPrefix() + "thing/service/property/get_reply", function (err) { if (!err) { console.log('ServicePropertyGetReply 订阅成功'); } else { console.log('ServicePropertyGetReply 订阅失败', err); } }); }, onMessage () { // 接收订阅消息 this.client.on('message', (topic, message) => { if (topic ===this.getTopicPrefix() + "thing/service/property/get_reply") { // 设备响应云端获取设备属性 const data=JSON.parse(message.toString()); this.data=data.params } }) } } } </script> <style> .text{ color:#fff; font-size:30px; } </style>
演示功能:
作者追问:2024-09-11 11:38
在Vue3的版本实例代码工作正常,但是在Vue2版本中提示找不到mqtt

讨论(0)