晓秋寒
晓秋寒
  • 发布:2018-12-25 10:09
  • 更新:2020-09-05 23:28
  • 阅读:3326

uni-app 取消socket监听

分类:uni-app

我在B页面添加了一个socketTask.onMessage监听,
B页面是由A页面上打开的,然后每次从B页面返回到A页面,监听事件貌似还没注销,就导致我每打开一个B页面,就会创建一个socket监听,
其中的回调函数的代码就会执行多次,请问有可以取消监听的方法吗,或者我可以怎么解决这个问题呢,谢谢大家~

2018-12-25 10:09 负责人:无 分享
已邀请:
7***@qq.com

7***@qq.com - 永不眠

请问您解决这个问题了吗?我也遇到这个问题了

大话疼

大话疼

你这个socketTask.onMessage监听,在app端是怎么实现的啊,我在app上都用不了

  • 晓秋寒 (作者)

    按照官方文档就可以了啊,


    2019-06-01 12:13

晓秋寒

晓秋寒 (作者)

不知道现在回复还有没有帮助,但是我的解决方式是

let isOnMessage = false;  
export default {  
	onLoad: function(options) {  
		// 解决重复监听问题  
		if(!isOnMessage){  
			isOnMessage = true;  
			this.__proto__.$$chatSocketTask.onMessage((res)=>{  
				// TODO  
			})  
		}  
	},  
}  

$$chatSocketTask 这个是我在其他页面打开socket连接时挂载在vue的socketTask

  • 码到成功

    很高深,我也遇到这个问题了


    2019-07-02 22:19

  • 码到成功

    但是学得不精,你的解决办法没有理解到。有空可以详细教一下吗


    2019-07-02 22:21

  • 码到成功

    回复 码到成功:我好像解决了。。。 我是在onMessage后,把传来的消息放进vuex里,然后别的页面调用它,通过watch监听它的数据变动,进而处理。


    2019-07-02 22:56

柚子胖鸡_

柚子胖鸡_

同样的问题,官方可以提供下解决方法吗

该问题目前已经被锁定, 无法添加新回复