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>
相关推荐
昭阳2 分钟前
4 个 vibe coding 项目,一个普通前端的半年
前端·人工智能·设计
颜进强6 分钟前
Claude Code - 26 效率三件套:cc-switch 切模型 · codeburn 算成本 · claude-hud 看状态
前端·后端·ai编程
东方小月28 分钟前
从零开发一个 Coding Agent(八):如何使用 Agent 类管理对话状态
前端·人工智能
张元清1 小时前
React useEventSource Hook:自带断线重连的 Server-Sent Events (2026)
javascript·react.js
光影少年1 小时前
RN 网络请求:Fetch / Axios 封装、超时、拦截器
前端·react native·react.js
学习星球1 小时前
Vue 3 实战:拆解 RealWorld 项目
前端·vue.js
铁皮饭盒1 小时前
网页端, 6.5MB人脸识别模型, 谷歌框架, 又快又准
前端·javascript·后端
xiaohaiAIgeo1 小时前
【2026年】ASHRAE 110与EN 14175通风柜测试标准对比:进口与国产品牌性能差距
java·前端·数据库·科普知识
自进化Agent智能体2 小时前
Hermes 工具与工具集——Hermes 的内置能力
javascript
用户2930750976692 小时前
TypeScript 必考题:Type 与 Interface 全面对比
前端