z***@qq.com
z***@qq.com
  • 发布:2019-12-20 10:21
  • 更新:2020-01-13 15:23
  • 阅读:1216

【报Bug】websocket在安卓状态下不能关闭

分类:uni-app

详细问题描述

(DCloud产品不会有明显的bug,所以你遇到的问题大都是在特定环境下才能重现的问题,请仔细描述你的环境和重现方式,否则DCloud很难排查解决你的问题)

[内容]

重现步骤

[步骤]【安卓出现问题,网页和苹果均可以关闭websocket】在页面加载的时候链接websocket,按手机主键隐藏页面(onHide)或返回(onUpload)时想关闭websocket

[结果]关闭不了websockt,重新打开页面会出现重联

[期望]关闭websoket

var socketTask;
var socketOpen = false;
export default{
data(){
return{

		}  
	},  
	onHide() {  
		console.log('onHide')  
		console.log(socketOpen)  
		console.log(socketTask.readyState)  
		//   
		// uni.onSocketClose(function (res) {//均不能关闭  
		//   console.log('WebSocket 已关闭!');  
		// });  
		socketTask.close()//这种关闭在网页中和苹果中关闭成功  
		socketTask.onClose(function(res){//均不能关闭  
			console.log(res)  
		})  
		uni.onSocketOpen(function () {//均不能关闭  
		  uni.closeSocket();  
		    
		});  
		  
		console.log(socketTask.readyState)  
	},  
	onShow(){  
		console.log('onshow')  
		this.connect()  
	},  
           onUnload(){  
		socketTask.close()  
	},  
	methods:{  
		  
		connect(){  
				socketTask =uni.connectSocket({  
					url:'', //仅为示例,并非真实接口地址。  
					  
					complete: ()=> {}  
				});  
				  
				// // //打开websocket  
				uni.onSocketOpen(function (res) {  
					socketOpen=true;  
				    console.log('WebSocket连接已打开!');  
				});  
				uni.onSocketMessage(function (res) {  
				  console.log(res);  
				});  
				uni.onSocketError(function (res) {  
				  console.log('WebSocket连接打开失败,请检查!');  
				});  
				uni.onSocketClose(function (res) {  
					//socketOpen=false;  
					console.log('WebSocket 已关闭!');  
				});  
		}  
	}  
}                                 
2019-12-20 10:21 负责人:无 分享
已邀请:
2***@qq.com

2***@qq.com - 蜗牛

请问解决了吗,我也同样遇见这个问题了,没走onClose方法,走的onError方法返回了一个

Code must be in range [1000,5000): 10000"

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