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>
相关推荐
hexu_blog17 小时前
前端vue后端java如何实现证件照功能
前端·javascript·vue.js
豹哥学前端17 小时前
前端 LocalStorage 实战:从入门到熟练,一篇就够了
前端·javascript·面试
用户401899334228417 小时前
第 11 章 MCP 协议与集成
前端
Southern Wind17 小时前
谷记账——一个 Vue 3 批次记账 App
前端·javascript·vue.js
A923A17 小时前
【javaScript 原型精讲】
javascript·原型·原型链
卷帘依旧18 小时前
手写throttle
javascript
lzhdim18 小时前
SQL 入门 14:SQL 触发器与事件:自动化数据处理
linux·前端·数据库·sql·自动化
其实防守也摸鱼18 小时前
Sqlmap:选取sqli-labs中less-8进行sqlmap注入测试
前端·css·网络·安全·web安全·less·sqli-labs
伯远医学18 小时前
Nat. Methods | 邻近标记技术:活细胞中捕捉分子互作的新利器
java·开发语言·前端·javascript·人工智能·算法·eclipse
莪_幻尘18 小时前
一份 AGENTS.md,让 AI 代码规范率从 60% 飙升到 95%
前端·ai编程·cursor