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>
相关推荐
不会敲代码118 分钟前
我花了三天时间,终于把 Cookie、XSS、CSRF 和浏览器存储给整明白了
javascript·面试
IT_陈寒22 分钟前
Vite这个坑我帮你踩了,动态导入居然这样才生效
前端·人工智能·后端
贩卖黄昏的熊24 分钟前
flex 布局快速梳理
开发语言·javascript·css3·html5
swipe26 分钟前
Mem0 x Agent 实战系列:分层记忆 + 三路召回,搭建真正可用的长期记忆层
前端·javascript·面试
鹤鸣的日常33 分钟前
前端运行时动态环境变量方案
前端·react.js·docker·前端框架·vue·gitlab
Lee川34 分钟前
Event Loop 面试通关:从原理到口述再到实战
前端·面试
kyriewen1 小时前
手写 call、apply、bind:从原理到实现,附 3 个最容易忽略的边界情况
前端·javascript·面试
用户2181697049301 小时前
swift (三) 枚举 结构体 类
前端
胡萝卜术1 小时前
从内存视角重新认识 JavaScript 数据类型:一份深度学习笔记
前端·javascript·面试
IVEN_1 小时前
记一次诡异的前端白屏故障:Nginx Proxy Cache 内存缓存"幽灵"事件
前端·nginx