当前位置: 首页 > news >正文

台州网络建站模板厦门seo总部电话

台州网络建站模板,厦门seo总部电话,湖南人文科技学院官网首页,福清网络推广文章 前言错误场景问题分析解决方案后言 前言 ✨✨ 他们是天生勇敢的开发者,我们创造bug,传播bug,毫不留情地消灭bug,在这个过程中我们创造了很多bug以供娱乐。 前端bug这里是博主总结的一些前端的bug以及解决方案,感兴…

文章

  • 前言
  • 错误场景
  • 问题分析
  • 解决方案
  • 后言

前言

✨✨ 他们是天生勇敢的开发者,我们创造bug,传播bug,毫不留情地消灭bug,在这个过程中我们创造了很多bug以供娱乐。
前端bug这里是博主总结的一些前端的bug以及解决方案,感兴趣可以看一下,有不同方案可以在评论区提出

在这里插入图片描述


正文开始

错误场景

一个mq客户端负责发布数据 代码如下:

// 连接到 MQTT 服务器
const url = "mqtt://127.0.0.1:1883";const options = {// 可以在这里添加额外的连接选项,比如 clientId 等clientId: "MQTT1",connectTimeout: 4000,reconnectPeriod: 1000,clean: true,username: "c37",password: "vi123456",
};
let mqttClient = mqtt.connect(url, options);
// 监听 MQTT 消息
mqttClient.on("connect", () => {console.log("MQTT Connected");
});
mqttClient.on("error", (err) => {console.error("MQTT client error:", err);
});// 确保在 Electron 应用关闭时清理 MQTT 客户端
app.on("window-all-closed", () => {if (process.platform !== "darwin") {app.quit();}if (mqttClient) {mqttClient.end();}
});app.on("quit", () => {if (mqttClient) {mqttClient.end();}
});const Index = 32;
const Value = 100;
const message = `Variable${Index}:${Value}`;mqttClient.publish("/MQTT1/pub", message, { qos: 1 }, (err) => {if (err) {console.error("Failed to publish message:", err);} else {console.log("Message sent successfully:", message);}
});

另外一个mq客户端负责订阅数据 代码如下:

async function connectAndSubscribe(mqttModule, variables) {try {const options = {clientId: "MQTT1",connectTimeout: 4000,reconnectPeriod: 1000,clean: true,username: "c37",password: "vi123456",};const mqttClient = mqttModule.connect('mqtt://127.0.0.1:1883', options);let isConnected = false; // 添加标志变量mqttClient.on('connect', function () {if (!isConnected) {isConnected = true;console.log('连接到 MQTT Broker 成功');mqttClient.subscribe('/MQTT1/pub', function (err) {if (!err) {console.log('已订阅 MQTT 主题 /MQTT1/pub');} else {console.error('订阅失败:', err);}});}});mqttClient.on('message', function (topic, message) {console.log(`接收到来自主题 ${topic} 的消息: ${message.toString()}`);const receivedMessage = message.toString();const parts = receivedMessage.split(':');if (parts.length === 2) {const variableName = parts[0];const value = parseFloat(parts[1]);if (variables[variableName] !== undefined) {variables[variableName].value = value;console.log(`已更新 ${variableName}${value}`);} else {console.log(`未知变量名称: ${variableName}`);}} else {console.log(`消息格式无效: ${receivedMessage}`);}});mqttClient.on('error', function (err) {console.error('MQTT 客户端错误:', err);});mqttClient.on('reconnect', function () {console.log('尝试重新连接到 MQTT Broker...');});mqttClient.on('offline', function () {console.log('MQTT 客户端离线');});} catch (err) {console.error("连接或订阅过程中发生错误:", err);}
}

问题分析

不报错 但是信息一直发送不过去 并且一直重连
原因:options中的clientId 重复了,mq允许一个用户在两个客户端登陆 代表我们用户名和密码可以一致,但是clientId不行
Client ID:每个 MQTT 客户端在连接到 Broker 时都需要提供一个唯一的 Client ID。如果多个客户端使用相同的 Client ID,则后一个连接将会替换掉前一个连接。这是 MQTT 协议的标准行为。

解决方案

options中的Client ID 不能重复 换成不一样的 可以搞一个随机数

后言

创作不易,要是本文章对广大读者有那么一点点帮助 不妨三连支持一下,您的鼓励就是博主创作的动力

http://www.yayakq.cn/news/564759/

相关文章:

  • 品牌网站建设四川电子商务网站建设与管理试卷
  • 新开传奇网站服永久免费的建站系统有哪些
  • 那些网站分享pr做的视频外贸网站建设制作教程
  • 学校学院网站建设意义wordpress首页如何添加模块
  • 东圃做网站公司网站建设新闻如何更新
  • 企业网站备案费用自助建站 平台
  • 教育网站建设的意义重庆市建设施工安全网站
  • 济南做网站推广有哪些公司盐城seo营销
  • 宁波网站制作计划电商设计专业
  • 网站建设规划书摘要500字网页素材库
  • 查询建设用地规划许可证在哪个网站潍坊市网站建设设计
  • 网站核验单下载搜狗链接提交入口
  • 网站做优化每天一定要更新中小学网站建设建议
  • 网站首页设计分析文安网站建设
  • 做网站推广有哪些公司深圳地图各区分布图
  • 如何将域名和网站绑定域名页面设计期末作业
  • 电商网站开发要求上海做高端网站
  • 什么是网站功能网站的类型有哪几种
  • 罗湖公司网站建设如何做打码网站
  • 做翻译 英文网站网页设计与制作教程杨选辉
  • 公司网站首页设计构想wordpress更新以后进不去了
  • 嘉兴模板建站定制网站佛山建筑公司排名
  • 网站如何建设手机版网页微信文件夹储存在什么位置
  • 游戏ui设计师网站有哪些阿里云1M做网站
  • 该网站受海外服务器保护西安有哪些互联网公司
  • 企业手机网站cms系统腾讯推广联盟
  • wordpress 多个边栏网站建设优化石家庄
  • 做网站年入百万人力资源公司注册
  • 网站打开慢的解决方法seo的含义
  • 大连专业做网站西地那非片能延时多久有副作用吗