热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

uni.app开发物联网小程序

1.当切换页面的时候,容易与mqtt服务器断开连接,并报错原因:在onLoad事件中,获取参数的时候使用异步获取࿰

1.当切换页面的时候,容易与mqtt服务器断开连接,并报错

在这里插入图片描述
原因:在onLoad事件中,获取参数的时候使用异步获取,但是在事件里面还使用了这个参数,导致mqtt发布的时候,发了一个空主题,导致连接被断开,然后报异常,错误代码如下

onLoad() {uni.getStorage({key: 'opened_dev',success:res=>{this.phone = res.data.phone;this.dev_id = res.data.dev_id;this.dev_name = res.data.name;this.dev_note = res.data.note;this.regist_time = res.data.regist_time;this.dev_type = res.data.type;this.img_src = res.data.dev_img;}});var globalData = getApp().globalData;globalData.on_mqtt_msg(this.msg_handler);//设置接收this.send_cmd(0,0);//获取全部信息this.timer_id = setInterval(this.get_dht11,3000);},

修改后:

onLoad() {uni.getStorage({key: 'opened_dev',success:res=>{this.phone = res.data.phone;this.dev_id = res.data.dev_id;this.dev_name = res.data.name;this.dev_note = res.data.note;this.regist_time = res.data.regist_time;this.dev_type = res.data.type;this.img_src = res.data.dev_img;var globalData = getApp().globalData;globalData.on_mqtt_msg(this.msg_handler);//设置接收this.send_cmd(0,0);//获取全部信息this.timer_id = setInterval(this.get_dht11,3000);}});},

在pub的时候 加验证

mqtt_pub: function(topic, msg) { //发布消息if(topic == null || topic == "")return;//topic最容易出现空的问题 会导致Uncaught (in promise) thirdScriptError 小程序的现象是断开连接重连 然后闪一下if(msg == null)return;if (client && is_connected){client.publish(topic, msg);}console.log("mqtt_pub," + "topic=" + topic + ",msg="+msg);
},

推荐阅读
author-avatar
手机用户2502894791
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有