当前位置:首页 > JavaScript

js实现mqtt

2026-03-14 02:03:59JavaScript

MQTT 协议简介

MQTT(Message Queuing Telemetry Transport)是一种轻量级的发布/订阅协议,适用于物联网(IoT)和低带宽环境。JavaScript 可通过库如 MQTT.js 实现 MQTT 客户端功能。

安装 MQTT.js

通过 npm 或 yarn 安装:

npm install mqtt --save
# 或
yarn add 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('error', (err) => {
  console.error('Connection error:', err);
});

订阅主题

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

发布消息

client.publish('topic/test', 'Hello MQTT');

接收消息

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

进阶配置

连接选项

可传递用户名、密码等参数:

const options = {
  username: 'your_username',
  password: 'your_password',
  keepalive: 60 // 心跳间隔(秒)
};
const client = mqtt.connect('mqtt://broker.example.com', options);

TLS/SSL 连接

const fs = require('fs');
const options = {
  key: fs.readFileSync('client-key.pem'),
  cert: fs.readFileSync('client-cert.pem'),
  ca: [fs.readFileSync('server-cert.pem')]
};
const client = mqtt.connect('mqtts://broker.example.com', options);

断开连接与重连

// 手动断开连接
client.end();

// 自动重连(需库支持或自定义逻辑)
client.on('close', () => {
  console.log('Connection closed, attempting to reconnect...');
  client.reconnect();
});

浏览器端使用

通过 CDN 引入或打包工具构建:

js实现mqtt

<script src="https://unpkg.com/mqtt/dist/mqtt.min.js"></script>
<script>
  const client = mqtt.connect('wss://broker.example.com');
  // 其余逻辑与 Node.js 类似
</script>

注意事项

  • 代理兼容性:确保代理支持 MQTT 3.1.1 或 5.0。
  • WebSocket 支持:浏览器端需使用 wss://ws:// 协议。
  • QoS 级别:根据需求设置消息质量等级(0/1/2)。

通过以上方法,可以快速在 JavaScript 中集成 MQTT 功能。

标签: jsmqtt
分享给朋友:

相关文章

jquery.js

jquery.js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,用于简化 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它的设计宗旨是“Write Less, Do Mor…

js实现分页

js实现分页

分页的基本实现思路 在JavaScript中实现分页功能通常需要结合前端和后端逻辑。前端负责渲染分页控件和处理用户交互,后端负责提供分页数据。 前端分页实现 纯前端分页适用于数据量较小的情况,可以直…

js实现验证码

js实现验证码

使用Canvas生成图形验证码 在HTML中创建一个Canvas元素用于绘制验证码。通过JavaScript随机生成数字或字母组合,并添加干扰线、噪点等干扰元素增强安全性。 <canvas i…

js实现全屏

js实现全屏

实现全屏的基本方法 使用JavaScript实现全屏功能主要依赖Element.requestFullscreen()方法。现代浏览器均支持此API,但不同浏览器可能需要添加前缀。 // 触发全屏…

js 实现分页

js 实现分页

实现分页的基本逻辑 分页功能通常需要后端返回数据总量或总页数,前端根据当前页码和每页条数截取对应数据。以下是一个基于JavaScript的简单分页实现方案: 前端分页实现 假设已有从后端获取的完整数…

js实现论坛

js实现论坛

实现论坛的基本功能 使用JavaScript实现一个论坛需要结合前端和后端技术。前端可以使用React、Vue或Angular等框架,后端可以选择Node.js配合Express或Koa框架。数据库可…