mqtt协议 node
时间: 2023-09-03 11:07:04 浏览: 28
MQTT(Message Queuing Telemetry Transport)是一种轻量级的消息传输协议,适用于物联网等场景中的设备间通信。在 Node.js 中,我们可以使用 mqtt 模块来实现 MQTT 协议的客户端和服务端。
以下是一个 MQTT 客户端的示例代码:
```javascript
const mqtt = require('mqtt');
const client = mqtt.connect('mqtt://broker.hivemq.com');
client.on('connect', function () {
client.subscribe('test', function (err) {
if (!err) {
client.publish('test', 'Hello MQTT');
}
});
});
client.on('message', function (topic, message) {
console.log(message.toString());
client.end();
});
```
在这个示例中,我们使用 mqtt 模块连接到 HiveMQ 公共 MQTT 代理,然后订阅了一个名为 “test” 的主题。在连接成功后,我们向该主题发布了一个消息,然后在收到该主题的消息时,打印出了消息内容,并关闭了连接。
要实现 MQTT 服务端,我们也可以使用 mqtt 模块。以下是一个简单的 MQTT 服务端示例代码:
```javascript
const mqtt = require('mqtt');
const server = mqtt.createServer(function (client) {
client.on('connect', function () {
client.subscribe('test');
});
client.on('message', function (topic, message) {
console.log(message.toString());
});
});
server.listen(1883);
```
在这个示例中,我们创建了一个名为 server 的 MQTT 服务端,并在客户端连接成功后,订阅了一个名为 “test” 的主题。在收到该主题的消息时,我们打印出了消息内容。
需要注意的是,上述示例中的服务端并没有对客户端进行身份验证和授权等安全措施,实际使用时需要根据具体需求进行相应的安全设置。