当前位置:首页 > 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');
    }
  });
});

发布消息

向指定主题发布消息:

MQTT js实现

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 示例,包含连接、订阅、发布和消息处理:

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 或打包工具:

<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中实现分页功能通常需要结合前端和后端逻辑。前端负责渲染分页控件和处理用户交互,后端负责提供分页数据。 前端分页实现 纯前端分页适用于数据量较小的情况,可以直…

js实现继承

js实现继承

原型链继承 通过将子类的原型指向父类的实例实现继承。子类实例可以访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Parent…

js实现列表

js实现列表

使用 JavaScript 实现列表 JavaScript 提供了多种方式来实现列表功能,包括数组操作、DOM 元素动态生成等。以下是几种常见的实现方法: 使用数组存储列表数据 数组是 JavaSc…

js实现预览

js实现预览

文件上传预览实现 使用JavaScript实现文件上传预览功能,可以通过FileReader对象读取文件内容并显示预览。以下代码支持图片、文本和PDF文件的预览: // HTML部分需要包含…

js实现选题

js实现选题

实现选题功能的JavaScript方法 基础实现方案 使用数组存储选项,通过随机索引选取: const options = ['选项A', '选项B', '选项C', '选项D']; const r…

链表实现js

链表实现js

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和一个指向下一个节点的指针(单向链表)或两个指针(双向链表)。与数组不同,链表在内存中非连续存储,插入和删除操作更高效,但随机…