MQTT js实现
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 或打包工具:
<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 加密通信。






