首页 > 编程语言 >微信小程序 mqtt 连接中断原因

微信小程序 mqtt 连接中断原因

时间:2023-10-23 10:44:57浏览次数:34  
标签:订阅 onUnload 中断 微信 onHide mqtt clearTopic 页面

上周开发微信小程序时新加了一个页面,复用了以前页面的逻辑,但是今天发现新加的页面出现了很奇怪的问题:

  • 进入新页面后,点一下查询再退出页面,mqtt连接正常;
  • 进入新页面后,直接返回退出页面,mqtt连接中断。

WebSocket connection to "wss://www.xxxx.com/mqtt" failed:Close received after close 

经过排查,发现小程序的生命周期onUnload和onHide里面都调用了取消订阅的方法  client.unsubscribe(subsTopic) ,但是不点查询的时候并没有订阅 subsTopic 。

订阅之后多次取消订阅没有问题,但是没有订阅时调用取消订阅 mqtt 连接就会中断。

onUnload() {
    console.log("卸载页面");
    this.clearTopic();
},
onHide() {
    console.log("隐藏页面");
    this.clearTopic();
},

解决办法:

去掉onUnload和onHide里的 this.clearTopic,在查询数据里面1. 订阅主题 2. 发布主题 3. 获取数据 4. 取消订阅主题。

标签:订阅,onUnload,中断,微信,onHide,mqtt,clearTopic,页面
From: https://www.cnblogs.com/sunshine233/p/17781834.html

相关文章

  • 揭秘苹果手机IOS系统各种微信双开方式与对比
    揭秘苹果手机IOS系统各种微信双开方式与对比「技术科普」现如今一提到IOS系统多开、分身,很多人已经深恶痛绝了。我看了很多知乎相关的文章和问答,有很多人在某宝或者其他平台买过多开分身,结果都是用了两三个月就没办法用了,甚至用了一两周就用不了了,本文就好好的列举一下各种双开的......
  • 苹果手机iOS系统上的各种微信双开方式
    揭秘了苹果手机iOS系统上的各种微信双开方式,以及对它们进行了比较和分析。以下是各种双开方式的总结:免费双开(爱思助手版):操作难度:⭐️⭐️⭐️⭐️⭐️费用:免费数据安全:可保留数据,但找不到安全的IPA包可能导致封号。结论:不推荐,不适合长期使用。企业签名版:操作难度:⭐️⭐️费用:30-6......
  • STM32不使用 cubeMX实现外部中断
    这篇文章将介绍如何不使用cubeMX完成外部中断的配置和实现。@TOC前言实验开发板:STM32F103C8T6。所需软件:keil5,cubeMX。实验目的:如何不使用cubeMX实现外部中断。实验:使用外部中断控制key点亮led.如果大家想了解如何cubeMX实现外部中断,可以参考我之前的文章:最详细STM32,cub......
  • 最详细STM32,cubeMX外部中断
    这篇文章将详细介绍cubeMX外部中断的配置,实现过程。@TOC前言实验开发板:STM32F103C8T6。所需软件:keil5,cubeMX。实验目的:外部中断的意义,cubeMX配置和实现等。一、外部中断的基础知识。对于外部中断的基础知识,可以参考我之前的文章:STM32EXTI外部中断二、cubeMX配置外部中断选......
  • esp32笔记[8]-rust的定时器中断点灯
    摘要使用rust开发esp32c3实现定时器中断点亮led灯.超链接esp32笔记[7]-使用rust+zig开发入门平台信息esp32c3rustMutex锁usecore::cell::RefCell;usecritical_section::Mutex;//no-std库专用的Mutex我们首先注意到的是静态变量BUTTON。我们需要它,因为在中断处理程......
  • 3、中断服务
    中断服务历程中断处理是计算机系统中的一种重要机制,用于处理异步事件或请求,如硬件中断、软件异常等。中断处理的基本原理是通过一个中断向量表来确定中断源,并执行相应的中断处理程序。在操作系统层面,这通常是通过中断服务例程(ISR)来实现的。基本原理如下:中断源:计算机系统中的......
  • 微信小程序加载第三方字体
     将ttf转换为base64格式:https://transfonter.org/步骤如下将下载后的stylesheet.css里的font-family属性名字改一下,然后引进页面里就行了,全局样式就放app.scss,单页面就引入单页面注:.title{height:36rpx;font-size:36rpx;font-family:"stylesheet里的名字";//这里......
  • 微信小程序发布后部分用户不能及时更新
    在app.js里的onLaunch里加入如下代码onLaunch(){if(wx.canIUse('getUpdateManager')){constupdateManager=wx.getUpdateManager()updateManager.onCheckForUpdate(function(res){console.log('onCheckForUpdate====',res)......
  • linux 内核 --- 关抢占/关中断,临界区
     preempt_disable()local_irq_disable()/local_irq_save(flags)spin_lock()spin_lock_irq()/spin_lock_irqsave(lock,flags)spin_lock()会调用preempt_disable()导致本核的抢占调度被关闭(preempt_disable函数实际增加preempt_count来达到此效果),spin_lock_irq()是local_i......
  • 如何高效使用微信的截图工具
    打开微信快捷键Alt+a截选区域这个微信截图工具,功能有箭头,文本,方框,圆框,马赛克,画笔,表情粘贴等.........