学习笔记:MQTT.js 入门教程

MQTT.js 入门教程

一、创建文件:【mqtt.js 客户端】

1、新建文件夹 mqtt_pure,建立 mqtt.js 文件;
2、在 VSCode 中打开,新开一个 终端
3、终端中输入 npm install mqtt --save
4、写入代码:

const mqtt = require('mqtt')
const options = {
    // Clean session
    clean: true,
    connectTimeout: 4000,
    // Auth
    clientId: 'emqx_test_lzl_mqttjs',
    username: 'emqx_test',
    password: 'emqx_test',
}

// 确保TCP Port 端口正确
const client = mqtt.connect('mqtt://broker.emqx.io:1883', options)

client.on('connect', function () {
    console.log('Connected')
    // 订阅到主题后,只触发一次。
    client.subscribe('testtopic/lzl-MQTTX', function (err) {
        if (!err) {
            console.log("subscribe success!!!!")
            //发布主题testtopic/lzl-mqttjs
            client.publish('testtopic/lzl-mqttjs', 'Hello, 我是mqttjs客户端消息。通过主题【testtopic/lzl-mqttjs】发布而来。 from: client.subscribe')
        }
    })
}),

// 只要接收到客户端消息,就会触发。
client.on('message', function (topic, message) {
    console.log(message.toString())

    client.publish('testtopic/lzl-mqttjs', 'Hello, 我是mqttjs客户端消息。 通过主题【testtopic/lzl-mqttjs】发布而来。from: client.on')
}),

client.on('close', function () {
    console.log('Disconnected');
    console.log('-------------------')
})
  • 代码目录:
    在这里插入图片描述
    5、终端输入 node mqtt.js 运行代码。

二、笔记:

2.1、【mqtt.js客户端】与 【MQTTX 客户端】

(1)两个客户端(mqtt.js MQTTX)连接到同一个服务器。

(2)clientID:全局唯一。如果不同的设备使用相同的clientID同时连接物联网平台,那么先连接的那个设备会被强制断开。

(3)【MQTTX 客户端】的 clientID,和【mqtt.js客户端】的 clientID 不能相同,服务器连接的客户端clientID必须唯一,不然就会挤掉其他的客户端。

  • 笔者设置【MQTTX 客户端】的 clientID:emqx_test_lzl_MQTTX
    注意:得使用外网访问服务器,公司内网会有墙隔断。
  • 笔者设置【mqtt.js客户端】的clientId: 'emqx_test_lzl_mqttjs'

在这里插入图片描述


2.2、消息订阅

1、运行node mqtt.js,在【mqttx.js 客户端】订阅 【MQTTX客户端】的消息:

在这里插入图片描述

2、命令行订阅消息

mqtt sub -t 'testtopic/#' -h 'broker.emqx.io' -v  // 连接到 broker.emqx.io 并订阅 testtopic/# 主题;
注释:
1、testtopic/#            代表【mqtt.js客户端】订阅所有testtopic/话题下的内容。
2、testtopic/lzl-MQTTX    代表【mqtt.js客户端】只接收我的【MQTTX客户端】发布的话题内容。

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值