VUE3+mqtt封装,解决多页面使用需重复连接等问题

本文介绍了如何在Vue3项目中封装mqtt服务,以解决多页面重复连接和配置的问题。通过将mqtt服务整合到Vuex中,确保连接和订阅只需进行一次,接收的消息存储在Vuex中方便共享。详细步骤包括安装mqtt.js、暴露Vue实例、编写mqtt配置文件以及在页面中引入和使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

场景:在做的一个项目中多个页面都需要使用到mqtt接收消息,但这样的话每个页面就都需要连接一次mqtt,并且要再次配置options信息、订阅主题、接收消息,非常的不方便,因此琢磨将mqtt封装到vuex中,使其可以多页面通用,这样只需要连接订阅一次,接收到的消息可以存储在vuex中。
mqtt在线测试工具:http://www.emqx.io/online-mqtt-client

一、安装mqtt

npm install mqtt

二、暴露出main.js中的vue实例

使用export default暴露出app

import {
    createApp } from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'

const app = createApp(App)

app.use(ElementPlus)
app.use(store).use(router).mount('#app')

export default app

三、封装mqtt

将mqtt服务封装到VUEX中,可以解决多页面需要用到mqtt接收消息时,每个页面都要再次配置、连接、订阅主题等问题

import {
    createStore } from 'vuex'
import main from "../main";//main.ts文件中要暴露app
import router from '@/router';// 引入vuex
export default createStore({
   
  state: {
   
    topics: [],//订阅话题
  },
  mutations: {
   
    //mqtt服务
    MQTT_SERVICE(state, event){
   
      // mqtt连接成功
      main.config.globalProperties.$mqtt.on('connect', (e) => {
   
        console.log('连接成功:', e)
        // console.log(state.topics)
        main.
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值