关于uni-app的App-plus 提示错误 socketTask.onOpen is not a function 适用于Vue2和Vue3

1,498 阅读1分钟

1.需要使用Mqtt 3.0版本

yarn add mqtt@3.0.0

2.安装成功后,需要main.js里面最后面添加以下代码(哪里都行,只要在执行mqtt前执行这段代码即可)

// #ifndef MP
// 处理 wx.connectSocket promisify 兼容问题,强制返回 SocketTask
uni.connectSocket = (function(connectSocket) {
	return function(options) {
		console.log(options)
		options.success = options.success || function() {}
		return connectSocket.call(this, options)
	}
})(uni.connectSocket)
// #endif

3.最后再引用即可

import mqtt from "mqtt/dist/mqtt.js"

let mqttTool = {
	client: null
}

mqttTool.connect = function(params){
	let options = {
		clientId: params.clientId,
		username: params.username,
		password: params.password,
		clean: params.clean,
		connectTimeout: 600000, 
		cleanSession: false,
		port:443
	}
	console.log(options);
	let client = mqtt.connect(params.url, options);
	mqttTool.client = client;
	return client;
}
....