前端mqtt的使用

本文介绍了如何使用Node.js的mqtt库通过WebSocket连接到MQTT服务器,实现只接收后端推送的数据,包括连接设置、主题订阅以及消息处理过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 需求是实时获取后端推送的数据 只收不发

import mqtt from "mqtt/dist/mqtt.min";
      const option = {
        keepalive: 5, //心跳时间,默认 60秒,设置 0 为禁用;
        clientId: +new Date(), //客户端 ID
        username: "xxx", //连接用户名(可选),
        password: "xxx", //连接密码(可选),
        protocolVersion: 4,
        clean: true, //设置为 false 以在离线时接收 QoS 1 和 2 消息;
        reconnectPeriod: 1000, //默认 1000 毫秒,两次重新连接之间的间隔,客户端 ID 重复、认证失败等客户端会重新连接;
        connectTimeout: 8 * 1000, //默认 30 * 1000毫秒,收到 CONNACK 之前等待的时间,即连接超时时间;
        will: {
          //遗嘱消息,当客户端严重断开连接时,Broker 将自动发送的消息。 一般格式为:
          topic: "WillMsg",
          payload: "Connection Closed abnormally..!",
          qos: 0,
          retain: false,
        },
      };
this.client = mqtt.connect('ws://192.111.3.000:8083/mqtt', option);//端口尽量使用8083 http用ws  https用wss 端口后加上/mqtt

先进行连接 再订阅主题

      this.client.on("connect", () => {
        // console.log("连接成功");
        this.client.subscribe(//订阅主题
          subjectArr,//可以是字符串跟数组 数组订阅多个主题
          { qos: 0 }
        );
      });

订阅成功后接收信息

      this.client.on("message", (topic, message, packet) => {
        // 这里有可能拿到的数据格式是Uint8Array格式,所以可以直接用toString转成字符串
        const data = JSON.parse(message.toString());
        // console.log("返回的数据:", data, topic);
      });

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值