当前位置:首页 > JavaScript

MQTT js实现

2026-04-06 02:57:13JavaScript

MQTT.js 实现指南

MQTT.js 是一个用于 Node.js 和浏览器的 MQTT 客户端库,支持 MQTT 协议 3.1.1 和 5.0 版本。以下是如何使用 MQTT.js 实现 MQTT 通信的详细步骤。

安装 MQTT.js

在项目中安装 MQTT.js 库:

npm install mqtt --save

连接到 MQTT 代理

创建一个连接到 MQTT 代理的客户端:

const mqtt = require('mqtt');
const client = mqtt.connect('mqtt://test.mosquitto.org');

client.on('connect', () => {
  console.log('Connected to MQTT broker');
});

订阅主题

在连接成功后订阅一个或多个主题:

client.on('connect', () => {
  client.subscribe('topic/test', (err) => {
    if (!err) {
      console.log('Subscribed to topic/test');
    }
  });
});

发布消息

向指定主题发布消息:

client.on('connect', () => {
  client.publish('topic/test', 'Hello MQTT');
});

处理接收的消息

监听并处理从订阅的主题接收到的消息:

client.on('message', (topic, message) => {
  console.log(`Received message on ${topic}: ${message.toString()}`);
});

断开连接

在需要时断开与 MQTT 代理的连接:

client.end();

完整示例

以下是一个完整的 MQTT.js 示例,包含连接、订阅、发布和消息处理:

const mqtt = require('mqtt');
const client = mqtt.connect('mqtt://test.mosquitto.org');

client.on('connect', () => {
  console.log('Connected to MQTT broker');

  client.subscribe('topic/test', (err) => {
    if (!err) {
      client.publish('topic/test', 'Hello MQTT');
    }
  });
});

client.on('message', (topic, message) => {
  console.log(`Received message on ${topic}: ${message.toString()}`);
  client.end();
});

高级配置

MQTT.js 支持多种配置选项,例如 TLS 连接、用户名密码认证等:

const client = mqtt.connect({
  host: 'test.mosquitto.org',
  port: 8883,
  protocol: 'mqtts',
  username: 'your_username',
  password: 'your_password'
});

错误处理

监听和处理连接错误:

client.on('error', (err) => {
  console.error('Connection error:', err);
  client.end();
});

浏览器端使用

在浏览器中使用 MQTT.js 需要引入 CDN 或打包工具:

MQTT js实现

<script src="https://unpkg.com/mqtt/dist/mqtt.min.js"></script>
<script>
  const client = mqtt.connect('wss://test.mosquitto.org:8081');
  client.on('connect', () => {
    console.log('Connected to MQTT broker');
  });
</script>

注意事项

  • 确保 MQTT 代理地址和端口正确。
  • 处理连接错误和断开事件以提高稳定性。
  • 在生产环境中使用 TLS 加密通信。

标签: MQTTjs
分享给朋友:

相关文章

js实现计算器

js实现计算器

实现基础计算器功能 使用JavaScript创建一个基础计算器需要处理数字输入、运算符逻辑和结果显示。以下是一个简单的实现示例: let currentInput = '0'; let previo…

js轮播图实现原理

js轮播图实现原理

轮播图的基本原理 轮播图通过动态切换显示的内容(图片、文本等)实现视觉上的滑动效果。核心原理是利用CSS和JavaScript控制元素的显示与隐藏,或通过变换位置实现滑动动画。 实现方法一:CSS…

js实现报表

js实现报表

使用JavaScript实现报表 在JavaScript中实现报表功能可以通过多种方式完成,常见的方法包括使用原生JavaScript、第三方库(如Chart.js、D3.js)或结合后端数据渲染。以…

js实现瀑布流

js实现瀑布流

实现瀑布流布局 瀑布流布局是一种常见的网页布局方式,常用于图片展示、商品列表等场景。以下是使用 JavaScript 实现瀑布流布局的几种方法。 纯 JavaScript 实现 通过计算元素的位置和…

js实现二叉树

js实现二叉树

二叉树的基本概念 二叉树是一种树形数据结构,每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树的常见操作包括插入、删除、遍历等。 二叉树的节点定义 在JavaScript中,二叉树的节点可…

js类实现

js类实现

使用类实现 JavaScript 功能 在 JavaScript 中,类(Class)是一种语法糖,基于原型继承机制。通过 class 关键字可以更直观地定义对象模板。 基本类定义 class…