• 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('-------------------')
    })
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 代码目录:
      在这里插入图片描述
      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客户端】发布的话题内容。
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
  • 相关阅读:
    分享一个基于springboot+vue的在线租房与招聘平台系统代码 房屋租赁系统
    杰理之data_hangdle【篇】
    网络安全在2024好入行吗?
    监控指标--监控指标(3)
    从零开始的PICO教程(1)Pico游戏开发项目配置
    广西联合开展小额贷款公司联合检查,时间为9月11日-10月20日
    Facebook账号为什么老是被限制?
    Codeforces Round #812 (Div. 2)
    数据库迁移-国产化-Oracle迁移至GBase8a(存储过程)
    手把手教你ubuntu下移植MJPG-streamer
  • 原文地址:https://blog.csdn.net/LIZHUOLONG1/article/details/126016604