uniapp+vue3编译微信小程序,解决mqtt真机无法链接的问题

记录一下最近遇到的问题:就是uniapp编译到微信小程序后,mqtt编译器可以链接,但是真机调试时无法链接,查了很久,有说换mqtt版本,其实我个人觉得和版本没有太大的关系,当然如果有完全解决的大佬,可以评论解答一下,同时服务器等配置问题自己百度,这边只解决前端问题

真机无法连接主要出现如下如图问题:自行对比,connected:只有为true时才算连接成功,才可进行之后的订阅等操作

我使用的是mqtt的2.18.8版本,可以选择npm install mqtt@2.18.8 之后通过import mqtt from 'mqtt/dist/mqtt.js'引入 ,当然https://unpkg.com/browse/mqtt/可以去这个网站进行对应版本下载最后放到文件夹下面进行引入

最后实现代码:

<template>
	<button @click="conents">链接</button>
</template>

<script setup>
	import mqtt from 'mqtt/dist/mqtt.js'
	import {
		ref
	} from 'vue'

	//MQTT
	// const host = ref('broker.emqx.io')//自己的地址
	const client = ref(null)
	const reconnectCounts = ref(0)
	const options = ref({
        //port:8084,是否需要配置端口根据nginx来的
		clientId: +new Date() + 'test02',
		clean: false,
		password: '',//密码
		username: '',//用户名
		reconnectPeriod: 1000, //1000毫秒,两次重新连接之间的间隔
		connectTimeout: 30 * 1000, //1000毫秒,两次重新连接之间的间隔
		resubscribe: true //如果连接断开并重新连接,则会再次自动订阅已订阅的主题(默认true)
	})
	const conents = () => {
		client.value = mqtt.connect(`wxs://${host.value}/mqtt`, options.value)
		console.log('client.value', client.value)
		client.value.on('connect', () => {
			wx.showToast({
				title: '连接成功'
			})
		})
	}
</script>

<style lang="scss" scoped>
</style>

注意:可以尝试使用broker.emqx.io地址,如果能进行连接则前端代码没有问题,但是记住在真机运行的适合记得勾选一下这项,否则无法连接

如果用自己的地址,则需要前往微信公众号平台,在开发管理中配置wss

最终成功后:

订阅等问题就不在这里写了,百度一堆 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值