mqtt接入事件回调测试

参考

mqttx在线公共地址

飞书聊天机器人事件websocket回调测试

node接入 main.js

js 复制代码
import mqtt from 'mqtt';

// broker 地址(WebSocket over TLS)
const brokerUrl = 'wss://broker.emqx.io:8084/mqtt';

// 连接选项
const options = {
  username: '',
  password: '', // 如果没有密码,可以去掉
  clientId: 'mqtt_test_nodejs_' + Math.random().toString(16).substr(2, 8),
  clean: true,
  reconnectPeriod: 1000, // 自动重连间隔 1 秒
};

// 订阅和发布的主题
const topic = 'ming/#';

// 连接 broker
const client = mqtt.connect(brokerUrl, options);

client.on('connect', () => {
  console.log('已连接到 MQTT broker');

  // 订阅主题
  client.subscribe(topic, (err) => {
    if (err) {
      console.error('订阅失败:', err);
    } else {
      console.log(`已订阅主题: ${topic}`);

      // 发送测试消息
      const message = 'Hello MQTT via WS ESM!';
      client.publish("ming/4", message, () => {
        console.log(`📤 已发送消息: ${message}`);
      });
    }
  });
});

// 接收消息
client.on('message', (topic, message) => {
  console.log(`收到消息 [${topic}]: ${message.toString()}`);
});

// 错误处理
client.on('error', (err) => {
  console.error('MQTT 连接错误:', err);
});

网页接入 index.html

html 复制代码
<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
  <title>MQTT WebSocket 测试</title>
</head>
<body>
  <h1>MQTT WebSocket 测试</h1>
  <div id="log"></div>

  <script src="https://unpkg.com/mqtt/dist/mqtt.min.js"></script>
  <script>
    const logEl = document.getElementById('log');
    function log(msg) {
      console.log(msg);
      logEl.innerHTML += msg + '<br>';
    }

    // broker 地址(WebSocket over TLS)
    const brokerUrl = 'wss://broker.emqx.io:8084/mqtt';

    // 连接选项
    const options = {
      username: '', // 如果需要用户名填这里
      password: '', // 如果需要密码填这里
      clientId: 'mqtt_test_browser_' + Math.random().toString(16).substr(2, 8),
      clean: true,
      reconnectPeriod: 1000 // 自动重连间隔 1 秒
    };

    // 订阅和发布的主题
    const topic = 'ming/#';

    // 连接 broker
    const client = mqtt.connect(brokerUrl, options);

    client.on('connect', () => {
      log('✅ 已连接到 MQTT broker');

      // 订阅主题
      client.subscribe(topic, (err) => {
        if (err) {
          log('❌ 订阅失败: ' + err);
        } else {
          log(`✅ 已订阅主题: ${topic}`);

          // 发送测试消息
          const message = 'Hello MQTT via Browser!';
          client.publish('ming/4', message, () => {
            log(`📤 已发送消息: ${message}`);
          });
        }
      });
    });

    client.on('message', (topic, message) => {
      log(`📥 收到消息 [${topic}]: ${message.toString()}`);
    });

    client.on('error', (err) => {
      log('❌ MQTT 连接错误: ' + err);
    });
  </script>
</body>
</html>
相关推荐
freewlt6 小时前
前端性能优化实战:从 Lighthouse 分数到用户体验的全面升级
前端·性能优化·ux
小小亮016 小时前
Next.js基础
开发语言·前端·javascript
华洛6 小时前
我用AI做了一个48秒的真人精品漫剧,不难也不贵
前端·javascript·后端
Amumu121387 小时前
Js:正则表达式(二)
开发语言·javascript·正则表达式
Novlan17 小时前
我把 Claude Code 里的隐藏彩蛋提取出来了——零依赖的 ASCII 虚拟宠物系统
前端
Sgf2277 小时前
ES8(ES2017)新特性完整指南
开发语言·javascript·ecmascript
IAUTOMOBILE7 小时前
Python 流程控制与函数定义:从调试现场到工程实践
java·前端·python
好大哥呀7 小时前
C++ Web 编程
开发语言·前端·c++
爱学习的小仙女!8 小时前
面试题 前端(一)DOCTYPE作用 标准模式与混杂模式区分
前端·前端面试题
小小小小宇9 小时前
前端转后端基础- 变量和类型
前端