当前位置:首页 > VUE

vue实现mqtt收发

2026-03-09 07:29:35VUE

Vue 中实现 MQTT 通信

安装 MQTT 客户端库

在 Vue 项目中安装 mqtt 库,支持浏览器和 Node.js 环境:

npm install mqtt --save

连接 MQTT 服务器

在 Vue 组件中引入并创建 MQTT 客户端:

import mqtt from 'mqtt';

const client = mqtt.connect('ws://mqtt.eclipse.org:80/mqtt');

订阅主题

连接成功后订阅指定主题:

client.on('connect', () => {
  client.subscribe('topic/test', (err) => {
    if (!err) console.log('订阅成功');
  });
});

接收消息

监听 message 事件处理接收到的消息:

client.on('message', (topic, message) => {
  console.log(`收到主题 ${topic} 的消息: ${message.toString()}`);
  // 可更新 Vue 的 data 或触发方法
});

发送消息

通过 publish 方法发送消息:

methods: {
  sendMessage() {
    client.publish('topic/test', 'Hello MQTT');
  }
}

断开连接

组件销毁时关闭连接:

vue实现mqtt收发

beforeDestroy() {
  client.end();
}

完整组件示例

<template>
  <div>
    <button @click="sendMessage">发送消息</button>
    <div>接收消息: {{ receivedMsg }}</div>
  </div>
</template>

<script>
import mqtt from 'mqtt';

export default {
  data() {
    return {
      client: null,
      receivedMsg: ''
    };
  },
  mounted() {
    this.client = mqtt.connect('ws://mqtt.eclipse.org:80/mqtt');

    this.client.on('connect', () => {
      this.client.subscribe('topic/test');
    });

    this.client.on('message', (topic, message) => {
      this.receivedMsg = message.toString();
    });
  },
  methods: {
    sendMessage() {
      this.client.publish('topic/test', 'Hello from Vue');
    }
  },
  beforeDestroy() {
    this.client.end();
  }
};
</script>

注意事项

  • 生产环境建议使用加密连接 wss://
  • 可配置用户名密码:mqtt.connect('ws://host', { username: 'user', password: 'pass' })
  • 错误处理需监听 error 事件
  • 支持 QoS 等高级参数配置

标签: 收发vue
分享给朋友:

相关文章

vue实现引导

vue实现引导

Vue 实现引导功能的方法 使用第三方库 推荐使用 driver.js 或 intro.js 这类专门为 Vue 设计的引导库。这些库提供了完整的 API 和样式,能够快速实现引导功能。 安装 dr…

vue实现grid

vue实现grid

Vue 实现 Grid 布局的方法 使用 CSS Grid 布局 Vue 可以结合 CSS Grid 布局实现灵活的网格系统。CSS Grid 是现代浏览器原生支持的布局方案,无需额外依赖库。 &l…

vue插件实现

vue插件实现

Vue 插件实现方法 Vue 插件是一种向 Vue 应用程序添加全局功能的机制。插件可以包含全局指令、过滤器、混入、实例方法等。 插件的基本结构 一个 Vue 插件通常是一个对象或函数,需要暴露一个…

vue 实现滑动

vue 实现滑动

Vue 实现滑动效果的方法 在Vue中实现滑动效果可以通过多种方式,以下是几种常见的方法: 使用CSS过渡和动画 通过Vue的<transition>组件结合CSS过渡或动画实现滑动效果…

mvvm实现vue

mvvm实现vue

MVVM 模式在 Vue 中的实现 MVVM(Model-View-ViewModel)是一种前端架构模式,Vue 的设计灵感来源于此。以下是 MVVM 在 Vue 中的核心实现方式: 数据绑定(M…

实现简单vue

实现简单vue

实现一个简单的 Vue.js 框架 Vue.js 的核心功能包括数据绑定、响应式系统和虚拟 DOM。以下是一个简化版的 Vue 实现,涵盖基本功能。 数据响应式系统 使用 Object.define…