当前位置:首页 > VUE

vue实现mqtt收发

2026-03-09 07:29:35VUE

Vue 中实现 MQTT 通信

安装 MQTT 客户端库

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

npm install mqtt --save

连接 MQTT 服务器

在 Vue 组件中引入并创建 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 事件处理接收到的消息:

vue实现mqtt收发

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

发送消息

通过 publish 方法发送消息:

methods: {
  sendMessage() {
    client.publish('topic/test', 'Hello 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中实现皮肤切换功能,通常涉及动态修改CSS变量或类名。核心是通过状态管理当前主题,并在组件中应用对应的样式。 使用CSS变量实现主题切换 CSS变量(自定义属性)是实…

实现vue模版

实现vue模版

Vue 模板的基本结构 Vue 模板基于 HTML 语法,通过 Vue 的指令和插值实现动态渲染。以下是一个基础模板示例: <template> <div id="app"…

vue实现长按

vue实现长按

Vue 实现长按功能的方法 在 Vue 中实现长按功能可以通过原生事件监听或自定义指令完成。以下是几种常见实现方式: 使用原生事件监听 通过 @mousedown 和 @mouseup 或 @tou…

vue如何实现

vue如何实现

Vue 实现方法 在 Vue 中实现功能通常涉及组件化开发、状态管理和响应式数据绑定。以下是几种常见的实现方式: 组件化开发 使用 Vue 的单文件组件(.vue 文件)结构,将 UI 拆分为可复用…

vue实现队列

vue实现队列

Vue 实现队列功能 在 Vue 中实现队列功能可以通过多种方式完成,以下是几种常见的方法: 使用数组模拟队列 队列遵循先进先出(FIFO)原则,可以用数组的 push 和 shift 方法模拟入队…

vue实现门户

vue实现门户

Vue 实现门户网站的关键步骤 搭建基础框架 使用 Vue CLI 或 Vite 初始化项目,安装 Vue Router 管理多页面路由。门户通常需要响应式布局,可引入 UI 库如 Element P…