参考mqttx在线公共地址飞书聊天机器人事件websocket回调测试node接入 main.jsimportmqttfrommqtt;// broker 地址WebSocket over TLSconstbrokerUrlwss://broker.emqx.io:8084/mqtt;// 连接选项constoptions{username:,password:,// 如果没有密码可以去掉clientId:mqtt_test_nodejs_Math.random().toString(16).substr(2,8),clean:true,reconnectPeriod:1000,// 自动重连间隔 1 秒};// 订阅和发布的主题consttopicming/#;// 连接 brokerconstclientmqtt.connect(brokerUrl,options);client.on(connect,(){console.log(已连接到 MQTT broker);// 订阅主题client.subscribe(topic,(err){if(err){console.error(订阅失败:,err);}else{console.log(已订阅主题:${topic});// 发送测试消息constmessageHello 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!DOCTYPEhtmlhtmllangzh-CNheadmetacharsetUTF-8titleMQTT WebSocket 测试/title/headbodyh1MQTT WebSocket 测试/h1dividlog/divscriptsrchttps://unpkg.com/mqtt/dist/mqtt.min.js/scriptscriptconstlogEldocument.getElementById(log);functionlog(msg){console.log(msg);logEl.innerHTMLmsgbr;}// broker 地址WebSocket over TLSconstbrokerUrlwss://broker.emqx.io:8084/mqtt;// 连接选项constoptions{username:,// 如果需要用户名填这里password:,// 如果需要密码填这里clientId:mqtt_test_browser_Math.random().toString(16).substr(2,8),clean:true,reconnectPeriod:1000// 自动重连间隔 1 秒};// 订阅和发布的主题consttopicming/#;// 连接 brokerconstclientmqtt.connect(brokerUrl,options);client.on(connect,(){log(✅ 已连接到 MQTT broker);// 订阅主题client.subscribe(topic,(err){if(err){log(❌ 订阅失败: err);}else{log(✅ 已订阅主题:${topic});// 发送测试消息constmessageHello 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