yaodaren
yaodaren
  • 发布:2021-08-28 17:33
  • 更新:2023-03-28 14:58
  • 阅读:1741

UNI页面调用mqtt的接收消息方法时,有重复接收消息

分类:uni-app
复制代码     我把mqtt相关方法都封装在了一个单独的js文件,然后页面哪里需要用就直接调用该js,下面是封装的js代码:  

复制代码     然后在页面中订阅主题,发送主题以及接收消息,这些操作都是放在onshow()方法中,然后问题来了:每次进入该页面时,mqttclient.on()方法会收到多一条消息,比如第一次进来是1条,第二次就变成2了,依次类推。  

复制代码     已经排除是多次订阅的问题,感觉就是这个插件有问题,我用mqttx工具查看日志的时候,并没有发现有多次发送消息的情况。  
     这是引入的插件:https://ext.dcloud.net.cn/plugin?id=854
2021-08-28 17:33 负责人:无 分享
已邀请:
j***@empower.cn

j***@empower.cn

个人觉得订阅主题不应该写在onshow里,否则切换到后台再重新返回页面还是会走onshow,就会导致重复订阅,你在进入页面的时候订阅了一次,离开页面的时候并没有取消订阅unsubscribe,mqtt也没有断开连接,所以进入onshow的时候又会重复订阅

  • yaodaren (作者)

    有时候需要用到动态订阅,不可避免的会出现重复订阅的情况,就是不知道题主多条信息的原因是不是因为重复订阅

    2023-01-05 17:39

王小胖0103

王小胖0103

请问问题解决了吗 我也遇到了相同问题 怎么处理的

yaodaren

yaodaren (作者)

解决了嘛,是插件问题么

9***@qq.com

9***@qq.com

我也遇到这种情况,排查了好久,确定就是出现了多个客户端,也就是每进入到这个页面,就会重复创建连接,所以可以在onUnload中断开连接!

要回复问题请先登录注册

  • 标题 / 粗斜体
  • 代码片段
  • 超链接 / 图片 / 视频
  • 列表 / 引用

文章内容较多时,可以用标题分段 :

## 大标题 
### 小标题

斜体 / 粗体 :

**粗体** 
*斜体*
***粗斜体***

代码片段 :

``` javascript
代码片段
```

超链接 :

[链接文字](链接地址) 例: [百度](http://www.baidu.com)

图片 :

![图片说明](图片地址) 例: ![百度logo](http://www.baidu.com/img/bdlogo.gif)

视频 :

!![视频说明](视频地址) 例: !![优酷视频](http://youku.com)

有序列表 :

1. 123
2. 123
3. 123

无序列表 :

- 123
- 123
- 123

引用 : ( 双回车后结束引用 )

> 引用内容
引用内容
引用内容