[{"data":1,"prerenderedAt":872},["Reactive",2],{"VEb9Nnn1YX":3,"blog-post-zh-mqttx-script-function-tutorial":26,"blog-posts-zh":650},{"items":4,"meta":23},[5,8,11,14,17,20],{"title":6,"titleUrl":7},"如何在 Python3 中使用 MQTT 客户端库 Paho Client","how-to-use-mqtt-in-python",{"title":9,"titleUrl":10},"MQTT服务器（MQTT Broker）：工作原理与快速入门指南","the-ultimate-guide-to-mqtt-broker-comparison",{"title":12,"titleUrl":13},"MQTT QoS 0、1、2 解析：快速入门指南","introduction-to-mqtt-qos",{"title":15,"titleUrl":16},"在 ESP32 上使用 MQTT：入门指南","esp32-connects-to-the-free-public-mqtt-broker",{"title":18,"titleUrl":19},"MQTT 主题与通配符（Topics & Wildcards）入门手册","advanced-features-of-mqtt-topics",{"title":21,"titleUrl":22},"车联网 CAN Bus 协议介绍与数据实时流处理","can-bus-how-it-works-pros-and-cons",{"count":24,"limit":24,"page":25},6,1,{"slug":27,"title":28,"description":29,"date":30,"category":31,"cover":32,"version":-1,"coverWidth":-1,"coverHeight":-1,"updated":-1,"tags":33,"readingTime":36,"doc":37},"mqttx-script-function-tutorial","MQTTX 脚本功能使用教程","MQTT X 在 v1.4.2 版本后加入了脚本功能，用户可使用脚本对 Payload 进行自定义转换，本文将通过两个简单的实例来介绍脚本功能的使用。","2021-02-23","guides","https://assets.emqx.com/images/d9b2744f485887c9fae26133ed2e4b14.png",[34,35],"Script","Desktop",5,{"_path":38,"_dir":39,"_draft":40,"_partial":40,"_locale":41,"title":28,"description":29,"date":42,"category":31,"tags":43,"cover":32,"body":44,"_type":643,"_id":644,"_source":645,"_file":646,"_extension":647,"readingTime":36,"sitemap":648},"/blog/zh/mqttx-script-function-tutorial","zh",false,"","2021-02-23T00:00:00.000Z",[34,35],{"type":45,"children":46,"toc":633},"root",[47,55,126,136,147,158,169,180,185,220,262,268,273,278,290,319,327,350,385,398,406,419,427,447,455,468,473,485,497,506,530,538,543,551,592,600,605,619],{"type":48,"tag":49,"props":50,"children":52},"element","h2",{"id":51},"概述",[53],{"type":54,"value":51},"text",{"type":48,"tag":56,"props":57,"children":58},"p",{},[59,66,68,74,76,85,87,94,96,108,110,117,119,124],{"type":48,"tag":60,"props":61,"children":63},"a",{"href":62},"/zh",[64],{"type":54,"value":65},"MQTTX",{"type":54,"value":67}," 是由全球领先的 ",{"type":48,"tag":69,"props":70,"children":71},"strong",{},[72],{"type":54,"value":73},"开源物联网中间件",{"type":54,"value":75}," 提供商 ",{"type":48,"tag":60,"props":77,"children":82},{"href":78,"rel":79,"target":81},"https://www.emqx.com/zh",[80,80],"noopener","_blank",[83],{"type":54,"value":84},"EMQ",{"type":54,"value":86}," 开源的一款跨平台 ",{"type":48,"tag":60,"props":88,"children":91},{"href":89,"rel":90,"target":81},"https://www.emqx.com/zh/blog/introduction-to-mqtt-5",[80,80],[92],{"type":54,"value":93},"MQTT 5.0",{"type":54,"value":95}," 桌面测试客户端，它支持 macOS，Linux，Windows。MQTTX 的用户界面借助聊天软件的形式简化了页面的操作逻辑，用户可以快速创建多个同时在线的 ",{"type":48,"tag":69,"props":97,"children":98},{},[99,106],{"type":48,"tag":60,"props":100,"children":103},{"href":101,"rel":102,"target":81},"https://www.emqx.com/zh/blog/mqtt-client-tools",[80,80],[104],{"type":54,"value":105},"MQTT 客户端",{"type":54,"value":107},"，",{"type":54,"value":109}," 方便测试 ",{"type":48,"tag":60,"props":111,"children":114},{"href":112,"rel":113,"target":81},"https://www.emqx.com/zh/blog/the-easiest-guide-to-getting-started-with-mqtt",[80,80],[115],{"type":54,"value":116},"MQTT",{"type":54,"value":118},"/TCP、MQTT/TLS、MQTT/WebSocket 的连接/发布/订阅功能及其他 ",{"type":48,"tag":69,"props":120,"children":121},{},[122],{"type":54,"value":123},"MQTT 协议",{"type":54,"value":125}," 特性。",{"type":48,"tag":56,"props":127,"children":128},{},[129,131],{"type":54,"value":130},"MQTTX 网站：",{"type":48,"tag":60,"props":132,"children":133},{"href":62},[134],{"type":54,"value":135},"https://mqttx.app/zh",{"type":48,"tag":56,"props":137,"children":138},{},[139,141],{"type":54,"value":140},"MQTTX v1.5.2 版本下载：",{"type":48,"tag":60,"props":142,"children":145},{"href":143,"rel":144,"target":81},"https://github.com/emqx/MQTTX/releases/tag/v1.5.2",[80,80],[146],{"type":54,"value":143},{"type":48,"tag":56,"props":148,"children":149},{},[150,152],{"type":54,"value":151},"Mac 用户可在 App Store 中进行下载：",{"type":48,"tag":60,"props":153,"children":156},{"href":154,"rel":155,"target":81},"https://apps.apple.com/cn/app/mqttx/id1514074565?mt=12",[80,80],[157],{"type":54,"value":154},{"type":48,"tag":56,"props":159,"children":160},{},[161,163],{"type":54,"value":162},"Linux 用户可在 Snapcraft 中进行下载：",{"type":48,"tag":60,"props":164,"children":167},{"href":165,"rel":166,"target":81},"https://snapcraft.io/mqttx",[80,80],[168],{"type":54,"value":165},{"type":48,"tag":56,"props":170,"children":171},{},[172],{"type":48,"tag":173,"props":174,"children":179},"img",{"alt":175,"src":176,"loading":177,"decoding":178},"mqttxpreview.png","https://assets.emqx.com/images/fdeeaa3093e114157fdbf46fd18bcd32.png?x-image-process=image/resize,w_1520/format,webp","lazy","async",[],{"type":48,"tag":49,"props":181,"children":183},{"id":182},"脚本功能",[184],{"type":54,"value":182},{"type":48,"tag":56,"props":186,"children":187},{},[188,193,195,202,204,209,211,218],{"type":48,"tag":69,"props":189,"children":190},{},[191],{"type":54,"value":192},"MQTTX 在 v1.4.2 版本后，加入了脚本功能，",{"type":54,"value":194}," 支持让用户使用脚本对 ",{"type":48,"tag":196,"props":197,"children":199},"code",{"className":198},[],[200],{"type":54,"value":201},"Payload",{"type":54,"value":203}," 进行自定义转换，可用来模拟自定义测试场景，目前支持的脚本语言为 JavaScript。下文将通过两个简单的实例来介绍脚本功能的使用， ",{"type":48,"tag":69,"props":205,"children":206},{},[207],{"type":54,"value":208},"需注意：在 v1.4.2 版本中脚本功能属于开放性测试功能，使用流程、安全性和功能性还需后续继续优化提升和完善。",{"type":54,"value":210}," 也欢迎您到 MQTTX 的 ",{"type":48,"tag":60,"props":212,"children":215},{"href":213,"rel":214,"target":81},"https://github.com/emqx/MQTTX/issues",[80,80],[216],{"type":54,"value":217},"GitHub issue",{"type":54,"value":219}," 区进行详细讨论，我们将会认真审阅和回复。",{"type":48,"tag":56,"props":221,"children":222},{},[223,225,231,233,239,241,246,248,253,255,260],{"type":54,"value":224},"在编辑脚本功能中，全局只包含了一个 ",{"type":48,"tag":196,"props":226,"children":228},{"className":227},[],[229],{"type":54,"value":230},"execute",{"type":54,"value":232}," API，用户需要编写一个自定义函数，该函数接收一个 ",{"type":48,"tag":196,"props":234,"children":236},{"className":235},[],[237],{"type":54,"value":238},"value",{"type":54,"value":240}," 参数，即为 ",{"type":48,"tag":196,"props":242,"children":244},{"className":243},[],[245],{"type":54,"value":201},{"type":54,"value":247},", 函数中便可对 ",{"type":48,"tag":196,"props":249,"children":251},{"className":250},[],[252],{"type":54,"value":238},{"type":54,"value":254}," 进行自定义修改转化，最后将该函数作为参数传入到 ",{"type":48,"tag":196,"props":256,"children":258},{"className":257},[],[259],{"type":54,"value":230},{"type":54,"value":261}," 中即可执行自定义编写的函数。",{"type":48,"tag":263,"props":264,"children":266},"h3",{"id":265},"实例一",[267],{"type":54,"value":265},{"type":48,"tag":56,"props":269,"children":270},{},[271],{"type":54,"value":272},"配合定时发送功能模拟温湿度数据上报。",{"type":48,"tag":56,"props":274,"children":275},{},[276],{"type":54,"value":277},"例如，当用户使用 EMQX 时，需要使用规则引擎功能将数据保存到数据库。这时可以在配置完成后，使用 MQTT X 连接到 EMQX，并使用脚本功能对其进行测试。这里假设用户需要保存上报的温湿度数据，且数据格式为 JSON 类型，我们可以使用下面的脚本对数据进行模拟。",{"type":48,"tag":279,"props":280,"children":285},"pre",{"className":281,"code":283,"language":284,"meta":41},[282],"language-javascript","/**\n * Simulated temperature and humidity reporting\n * @return Return a simulated temperature and humidity JSON data - { \"temperature\": 23, \"humidity\": 40 }\n * @param value, MQTT Payload - {}\n */\n\nfunction random(min, max) {\n  return Math.round(Math.random() * (max - min)) + min\n}\n\nfunction handlePayload(value) {\n  let _value = value\n  if (typeof value === 'string') {\n    _value = JSON.parse(value)\n  }\n  _value.temperature = random(10, 30)\n  _value.humidity = random(20, 40)\n  return JSON.stringify(_value, null, 2)\n}\n\nexecute(handlePayload)\n","javascript",[286],{"type":48,"tag":196,"props":287,"children":288},{"__ignoreMap":41},[289],{"type":54,"value":283},{"type":48,"tag":56,"props":291,"children":292},{},[293,295,301,303,309,311,317],{"type":54,"value":294},"此时可将这段代码复制到脚本页面的代码编辑框内，点击右上角的 ",{"type":48,"tag":196,"props":296,"children":298},{"className":297},[],[299],{"type":54,"value":300},"保存",{"type":54,"value":302}," 按钮，设置脚本名称为 TempAndHum 并保存。我们在 Input 输入框内输入一个 ",{"type":48,"tag":196,"props":304,"children":306},{"className":305},[],[307],{"type":54,"value":308},"{}",{"type":54,"value":310}," 作为初始数据。点击 ",{"type":48,"tag":196,"props":312,"children":314},{"className":313},[],[315],{"type":54,"value":316},"测试",{"type":54,"value":318}," 按钮，在 Output 框内查看执行结果，如果结果符合预期，接下来将可以正常使用该脚本。",{"type":48,"tag":56,"props":320,"children":321},{},[322],{"type":48,"tag":173,"props":323,"children":326},{"alt":324,"src":325,"loading":177,"decoding":178},"mqttxhumtemp.png","https://assets.emqx.com/images/e8c56a968c89ae76bb6fb684ca73027b.png?x-image-process=image/resize,w_1520/format,webp",[],{"type":48,"tag":56,"props":328,"children":329},{},[330,332,339,341,348],{"type":54,"value":331},"我们使用 EMQX 提供的 ",{"type":48,"tag":60,"props":333,"children":336},{"href":334,"rel":335,"target":81},"https://www.emqx.com/zh/mqtt/public-mqtt5-broker",[80,80],[337],{"type":54,"value":338},"免费公共 MQTT 服务器",{"type":54,"value":340}," 新建一个连接，该服务基于 EMQX 的 ",{"type":48,"tag":60,"props":342,"children":345},{"href":343,"rel":344,"target":81},"https://www.emqx.com/zh/cloud",[80,80],[346],{"type":54,"value":347},"MQTT 物联网云平台",{"type":54,"value":349}," 创建。服务器接入信息如下：",{"type":48,"tag":351,"props":352,"children":353},"ul",{},[354,365,375],{"type":48,"tag":355,"props":356,"children":357},"li",{},[358,360],{"type":54,"value":359},"Broker: ",{"type":48,"tag":69,"props":361,"children":362},{},[363],{"type":54,"value":364},"broker.emqx.io",{"type":48,"tag":355,"props":366,"children":367},{},[368,370],{"type":54,"value":369},"TCP Port: ",{"type":48,"tag":69,"props":371,"children":372},{},[373],{"type":54,"value":374},"1883",{"type":48,"tag":355,"props":376,"children":377},{},[378,380],{"type":54,"value":379},"Websocket Port: ",{"type":48,"tag":69,"props":381,"children":382},{},[383],{"type":54,"value":384},"8083",{"type":48,"tag":56,"props":386,"children":387},{},[388,390,396],{"type":54,"value":389},"连接成功后，点击右上角的下拉功能菜单，选择 ",{"type":48,"tag":196,"props":391,"children":393},{"className":392},[],[394],{"type":54,"value":395},"使用脚本",{"type":54,"value":397},"，在弹出窗中，选择刚才保存好的 TempAndHum 脚本，然后选择应用类型为发送时，点击确认按钮后开启脚本功能。",{"type":48,"tag":56,"props":399,"children":400},{},[401],{"type":48,"tag":173,"props":402,"children":405},{"alt":403,"src":404,"loading":177,"decoding":178},"mqttxuse1.png","https://assets.emqx.com/images/0cdc5685eec2832049534beaf258fa57.png?x-image-process=image/resize,w_1520/format,webp",[],{"type":48,"tag":56,"props":407,"children":408},{},[409,411,417],{"type":54,"value":410},"开启脚本后，我们再继续设置定时发送功能，同样点击右上角的下拉功能菜单，选择 ",{"type":48,"tag":196,"props":412,"children":414},{"className":413},[],[415],{"type":54,"value":416},"定时消息",{"type":54,"value":418},"，这里我们设置发送频率为 1 秒，点击确认后定时消息功能开启。",{"type":48,"tag":56,"props":420,"children":421},{},[422],{"type":48,"tag":173,"props":423,"children":426},{"alt":424,"src":425,"loading":177,"decoding":178},"mqttxtimed.png","https://assets.emqx.com/images/8cf5eaf54e3ab5596c03500012463cd7.png?x-image-process=image/resize,w_1520/format,webp",[],{"type":48,"tag":56,"props":428,"children":429},{},[430,432,437,439,445],{"type":54,"value":431},"准备好后，便可以输入初始的 ",{"type":48,"tag":196,"props":433,"children":435},{"className":434},[],[436],{"type":54,"value":201},{"type":54,"value":438}," 和需要发送到的",{"type":48,"tag":196,"props":440,"children":442},{"className":441},[],[443],{"type":54,"value":444},"Topic",{"type":54,"value":446},"，点击发送成功一条消息后，便可以看到 MQTTX 将每秒自动发送了一次模拟数据。",{"type":48,"tag":56,"props":448,"children":449},{},[450],{"type":48,"tag":173,"props":451,"children":454},{"alt":452,"src":453,"loading":177,"decoding":178},"mqttxhumtempsuccess.png","https://assets.emqx.com/images/695bfda6171514106492d3543d884686.png?x-image-process=image/resize,w_1520/format,webp",[],{"type":48,"tag":56,"props":456,"children":457},{},[458,460,466],{"type":54,"value":459},"这样避免了用户去手动输入和修改数据的麻烦，且使用脚本时模拟数据可控，模拟数据区间可在脚本的 ",{"type":48,"tag":196,"props":461,"children":463},{"className":462},[],[464],{"type":54,"value":465},"random",{"type":54,"value":467}," 函数中设定，如果有对保存的数据进行可视化图表测试需求或需要添加一定的数据量的数据来测试时，都较为方便和友好。",{"type":48,"tag":263,"props":469,"children":471},{"id":470},"实例二",[472],{"type":54,"value":470},{"type":48,"tag":56,"props":474,"children":475},{},[476,478,483],{"type":54,"value":477},"将接收到的 ",{"type":48,"tag":196,"props":479,"children":481},{"className":480},[],[482],{"type":54,"value":201},{"type":54,"value":484}," 中的时间戳转化为正常时间。",{"type":48,"tag":56,"props":486,"children":487},{},[488,490,495],{"type":54,"value":489},"在一些测试场景中，用户测试接收到的 ",{"type":48,"tag":196,"props":491,"children":493},{"className":492},[],[494],{"type":54,"value":201},{"type":54,"value":496}," 内可能会包含时间戳信息，如果需要观察和测试对时间较为敏感的数据，可能需要复制出数据，再将时间戳转化时间，较为麻烦。此时可以使用脚本对接收到的数据进行自动转化，方便用户观察数据信息。我们可以使用下面的脚本对数据进行转化。依然假设接收到的数据为 JSON 类型，并且包含了 time 字段。",{"type":48,"tag":279,"props":498,"children":501},{"className":499,"code":500,"language":284,"meta":41},[282],"/**\n * Convert timestamp to normal time.\n * @return Return the UTC time - { \"time\": \"2020-12-17 14:18:07\" }\n * @param value, MQTT Payload - { \"time\": 1608185887 }\n */\n\nfunction handleTimestamp(value) {\n  let _value = value\n  if (typeof value === 'string') {\n    _value = JSON.parse(value)\n  }\n  // East Eight District needs an additional 8 hours\n  const date = new Date(_value.time * 1000 + 8 * 3600 * 1000)\n  _value.time = date.toJSON().substr(0, 19).replace('T', ' ')\n  return JSON.stringify(_value, null, 2)\n}\n\nexecute(handleTimestamp)\n",[502],{"type":48,"tag":196,"props":503,"children":504},{"__ignoreMap":41},[505],{"type":54,"value":500},{"type":48,"tag":56,"props":507,"children":508},{},[509,510,515,517,523,524,529],{"type":54,"value":294},{"type":48,"tag":196,"props":511,"children":513},{"className":512},[],[514],{"type":54,"value":300},{"type":54,"value":516}," 按钮，设置脚本名称为 Time 并保存。我们在 Input 输入框内输入一个 ",{"type":48,"tag":196,"props":518,"children":520},{"className":519},[],[521],{"type":54,"value":522},"{ \"time\": 1608365158 }",{"type":54,"value":310},{"type":48,"tag":196,"props":525,"children":527},{"className":526},[],[528],{"type":54,"value":316},{"type":54,"value":318},{"type":48,"tag":56,"props":531,"children":532},{},[533],{"type":48,"tag":173,"props":534,"children":537},{"alt":535,"src":536,"loading":177,"decoding":178},"mqttxtime.png","https://assets.emqx.com/images/145b3c4b24a42bd52f44923fb0e272f9.png?x-image-process=image/resize,w_1520/format,webp",[],{"type":48,"tag":56,"props":539,"children":540},{},[541],{"type":54,"value":542},"此时我们依然新建一个连接，使用上述中描述的方法来开启脚本。注意选择应用类型时，需要选择为接收时。",{"type":48,"tag":56,"props":544,"children":545},{},[546],{"type":48,"tag":173,"props":547,"children":550},{"alt":548,"src":549,"loading":177,"decoding":178},"mqttxuse2.png","https://assets.emqx.com/images/0d3d705ee8a79eecb483cb30ecd15c71.png?x-image-process=image/resize,w_1520/format,webp",[],{"type":48,"tag":56,"props":552,"children":553},{},[554,556,562,564,569,571,576,578,583,585,590],{"type":54,"value":555},"脚本功能开启后，我们添加一个 ",{"type":48,"tag":196,"props":557,"children":559},{"className":558},[],[560],{"type":54,"value":561},"testtopic/time",{"type":54,"value":563}," 的 ",{"type":48,"tag":196,"props":565,"children":567},{"className":566},[],[568],{"type":54,"value":444},{"type":54,"value":570},"，然后我们向该 ",{"type":48,"tag":196,"props":572,"children":574},{"className":573},[],[575],{"type":54,"value":444},{"type":54,"value":577}," 发送一条包含时间戳信息的 ",{"type":48,"tag":196,"props":579,"children":581},{"className":580},[],[582],{"type":54,"value":201},{"type":54,"value":584},"。然后查看接收到的 ",{"type":48,"tag":196,"props":586,"children":588},{"className":587},[],[589],{"type":54,"value":201},{"type":54,"value":591}," 信息，可以看到已经自动帮时间戳转化为了正常时间。",{"type":48,"tag":56,"props":593,"children":594},{},[595],{"type":48,"tag":173,"props":596,"children":599},{"alt":597,"src":598,"loading":177,"decoding":178},"mqttxtimesuccess.png","https://assets.emqx.com/images/eee40a6a899c8c9912ee55ae9efbd56b.png?x-image-process=image/resize,w_1520/format,webp",[],{"type":48,"tag":49,"props":601,"children":603},{"id":602},"总结",[604],{"type":54,"value":602},{"type":48,"tag":56,"props":606,"children":607},{},[608,610,617],{"type":54,"value":609},"至此，我们完成了 MQTTX 的脚本实例使用的教程。该功能具有一定的扩展性和灵活性，需用户配合实际需求来进行使用。脚本使用实例可在 GitHub 仓库的 ",{"type":48,"tag":60,"props":611,"children":614},{"href":612,"rel":613,"target":81},"https://github.com/emqx/MQTTX/tree/main/scripts-example",[80,80],[615],{"type":54,"value":616},"/script-example",{"type":54,"value":618}," 文件夹中查看，目前提供了两个内置脚本，时间戳转化和温湿度数据模拟。如果在您的使用中有更好的，更实用的脚本也可以提交您的代码到这里，方便让更多的人使用到。",{"type":48,"tag":56,"props":620,"children":621},{},[622,624,631],{"type":54,"value":623},"该项目完全开源，您可以到 ",{"type":48,"tag":60,"props":625,"children":628},{"href":626,"rel":627,"target":81},"https://github.com/emqx/MQTTX/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc",[80,80],[629],{"type":54,"value":630},"GitHub",{"type":54,"value":632}," 来提交使用过程中遇到的问题，或是 Fork MQTTX 项目向我们提交修改后的 PR，我们将会及时查阅和处理。也特此感谢社区中所有用户的贡献和反馈。",{"title":41,"searchDepth":634,"depth":634,"links":635},2,[636,637,642],{"id":51,"depth":634,"text":51},{"id":182,"depth":634,"text":182,"children":638},[639,641],{"id":265,"depth":640,"text":265},3,{"id":470,"depth":640,"text":470},{"id":602,"depth":634,"text":602},"markdown","content:blog:zh:mqttx-script-function-tutorial.md","content","blog/zh/mqttx-script-function-tutorial.md","md",{"loc":649,"lastmod":30},"/zh/blog/mqttx-script-function-tutorial",[651,659,666,672,679,686,693,699,706,713,720,727,734,740,747,754,761,768,775,781,788,795,802,809,816,823,829,836,843,850,851,858,865],{"slug":652,"title":653,"description":654,"date":655,"category":656,"cover":657,"version":658},"mqttx-1-13-2-released","MQTTX 1.13.2 发布：MQTTX Agent 与 Dashboard","MQTTX 1.13.2 通过 MQTTX Agent 自动执行 MQTT 测试、比对消息并排查问题，Dashboard 独立展示设备指标与趋势。","2026-10-26","release-notes","/images/blog/mqttx-1-13-2-released.webp","1.13.2",{"slug":660,"title":661,"description":662,"date":663,"category":664,"cover":665,"version":-1},"introducing-mqttx-ai-agent-skill","MQTTX AI Agent Skill 正式发布","MQTTX CLI 内置的 Agent Skill，让 AI 编码 Agent 能够正确、安全地完成 MQTT 连接检查、消息收发、压测与数据模拟。","2026-09-20","product","/images/blog/introducing-mqttx-ai-agent-skill.webp",{"slug":667,"title":668,"description":669,"date":663,"category":656,"cover":670,"version":671},"mqttx-1-13-1-released","MQTTX 1.13.1 发布：AI Agent Skill 与 MQTT 5.0 订阅用户属性","MQTTX 1.13.1 新增 CLI Agent Skill 和 MQTT 5.0 订阅用户属性，同时改进数据导出、渲染安全与日常调试体验。","/images/blog/mqttx-1-13-1-released.webp","1.13.1",{"slug":673,"title":674,"description":675,"date":676,"category":656,"cover":677,"version":678},"mqttx-1-13-0-released","MQTTX 1.13.0 发布：消息体查看器与 UI 优化","该版本带来了全新的消息体查看器功能，包含差异视图和 JSON 树视图，让消息调试更加直观高效。同时新增快速复制功能，支持一键复制 Topic、Payload 和连接地址。","2026-02-03","https://assets.emqx.com/images/8c7121a4362a9bfa897396a3fc8fefaa.png","1.13.0",{"slug":680,"title":681,"description":682,"date":683,"category":656,"cover":684,"version":685},"mqttx-1-12-1-release-notes","MQTTX 1.12.1 发布：SCRAM 认证与安全增强","MQTTX 1.12.1 带来了重要的安全更新，包括全平台支持的 SCRAM 增强认证、修复了消息显示中的 XSS 漏洞、更新了 2025 年最新的 AI 模型，以及关键的稳定性改进。","2025-10-16","https://assets.emqx.com/images/8e89d5d55c44425251ab2b7e84fdb5c8.png","1.12.1",{"slug":687,"title":688,"description":689,"date":690,"category":656,"cover":691,"version":692},"mqttx-1-12-0-release-notes","MQTTX 1.12.0 发布：Copilot 2.0 & 原生 MCP 集成","MQTTX 1.12.0 版本正式发布，带来了 Copilot 2.0 功能（集成 Gemini 2.5 Pro、Claude-4、GPT-4.1、o3/o4-mini、Azure OpenAI 等模型）。","2025-07-03","https://assets.emqx.com/images/2ff9750580cb332de42e887eef90dfb4.jpg","1.12.0",{"slug":694,"title":695,"description":696,"date":697,"category":664,"cover":698,"version":-1},"enhancing-mqtt-toolbox-with-ai-capabilities","MQTTX + MCP：MQTT 客户端秒变物联网 Agent","作为最受欢迎的 MQTT 客户端工具，MQTTX 在 1.12.0 beta 版本中集成了模型上下文协议（MCP）到 Copilot AI 功能中，显著提升了服务能力。","2025-04-17","https://assets.emqx.com/images/0414033f16fee53f3c8b8e3538a38fef.png",{"slug":700,"title":701,"description":702,"date":703,"category":656,"cover":704,"version":705},"mqttx-1-11-1-release-notes","MQTTX 1.11.1 发布: 可视化功能增强","该版本增强了 MQTTX 的可视化功能，改进了主题树功能和实时流量监控。新增的流量速率监控功能为用户提供实时数据包追踪，主题树现在支持与连接列表的手动同步以及 MQTT 属性显示。","2024-12-20","https://assets.emqx.com/images/2f182bc8a29fb11bf11a6f39a67bec7c.jpg","1.11.1",{"slug":707,"title":708,"description":709,"date":710,"category":656,"cover":711,"version":712},"mqttx-1-11-0-release-notes","MQTTX 1.11.0 发布：Topic Tree 与 Avro Schema","本次发布引入了 Topic Tree 可视化功能，提供了一种按层级组织和监控 MQTT 主题的强大新方式。","2024-10-29","https://assets.emqx.com/images/dba4e395e4043265d635384c6670c206.jpg","1.11.0",{"slug":714,"title":715,"description":716,"date":717,"category":656,"cover":718,"version":719},"mqttx-1-10-1-release-notes","MQTTX 1.10.1 发布：桌面端一键安装命令行工具","本次更新带来了一系列提升用户体验的重要功能：通过桌面应用一键安装 MQTTX 命令行工具；增加对自定义 AI Copilot API 的支持，为中国区域内的用户提供内置的 Moonshot LLM API。","2024-07-25","https://assets.emqx.com/images/c83ea38e592729c4349f39fa8ee2883a.jpg","1.10.1",{"slug":721,"title":722,"description":723,"date":724,"category":656,"cover":725,"version":726},"mqttx-1-10-0-release-notes","MQTTX 1.10.0 发布：CLI高级文件管理与配置","在本次更新中，CLI 版本在文件管理和配置功能方面进行了显著增强。主要更新包括：支持从文件中读取和写入消息、高级配置选项、文本输出模式、以及改进的日志记录。","2024-06-14","https://assets.emqx.com/images/76adac845cbb113915947ca5b76631a5.jpg","1.10.0",{"slug":728,"title":729,"description":730,"date":731,"category":656,"cover":732,"version":733},"mqttx-1-9-10-release-notes","MQTTX 1.9.10 发布：升级 Faker.js、增强连接与订阅诊断、优化 UI","MQTTX 1.9.10 引入了一项关键更新：将 Faker.js 升级到 v8，带来重大变更。此次升级将影响那些使用自定义模拟脚本的用户，需要对脚本进行修改以保持与新版本的兼容。","2024-04-25","https://assets.emqx.com/images/f4a343ea4a9accc7c2b9047e2ee992aa.png","1.9.10",{"slug":735,"title":736,"description":737,"date":738,"category":31,"cover":739,"version":-1},"how-to-publish-and-receive-protobuf-messages-within-mqtt","如何在 MQTT 中发布和接收 Protobuf 消息？","MQTTX 是一款开源的全功能 MQTT 客户端，支持从 JSON、Base64 到现如今的 Protobuf 的多种格式。我们将在本文中展示如何使用 MQTTX 来定义、发布和接收 Protobuf 消息。","2024-04-17","https://assets.emqx.com/images/348e290abdede74446c634642b1bfcf7.png",{"slug":741,"title":742,"description":743,"date":744,"category":656,"cover":745,"version":746},"mqttx-1-9-9-release-notes","MQTTX 1.9.9 发布：新增日志级别自定义功能、UI 增强","MQTTX 1.9.9 现已正式发布。该版本带来了多项关键更新：包括优化连接事件的处理、新增 CBOR 数据格式支持、提供可定制的调试日志级别以及增强用户界面灵活性。","2024-02-21","https://assets.emqx.com/images/2f5c68eb83929b730860399f9486ae21.png","1.9.9",{"slug":748,"title":749,"description":750,"date":751,"category":656,"cover":752,"version":753},"mqttx-1-9-8-release-notes","MQTTX 1.9.8 发布：CLI 支持调试模式、AI Copilot 增强","MQTTX 1.9.8 现已发布，新版本中 MQTTX CLI 新增了调试模式，这一功能增强了开发者的故障排查和分析能力。此外，更新也改进了 MQTTX AI Copilot 功能，为用户提供了更先进的基于 AI 驱动的 MQTT 交互支持。","2024-01-29","https://assets.emqx.com/images/5624cf41d474bf0cf8b6aaa47cf09c1f.png","1.9.8",{"slug":755,"title":756,"description":757,"date":758,"category":656,"cover":759,"version":760},"mqttx-1-9-7-release-notes","MQTTX 1.9.7 更新：MQTTX AI Copilot 发布","此次更新的一大亮点是引入了 MQTTX Copilot，全新的 MQTT AI 助手，为用户提供更方便、快捷的使用体验。AI 助手能增强用户互动，帮助用户更深入理解并使用 MQTT 和 EMQX。","2024-01-22","https://assets.emqx.com/images/18f1a0ab5e4967d46c2b9d351da052a4.png","1.9.7",{"slug":762,"title":763,"description":764,"date":765,"category":656,"cover":766,"version":767},"mqttx-v-1-9-6-release-notes","MQTTX 1.9.6 发布：ALPN 协议支持，UI 持续优化","本次更新主要重点在于加强连接协议、并对用户界面进行了优化，旨在提供一个更高效、安全和用户友好的体验。","2023-09-26","https://assets.emqx.com/images/359278439c384548665bfb0388f0aa24.png","1.9.6",{"slug":769,"title":770,"description":771,"date":772,"category":656,"cover":773,"version":774},"mqttx-1-9-5-released-json-message-highlighting-and-more","MQTTX 1.9.5 发布：JSON 消息高亮显示","MQTT 5.0 客户端工具 MQTTX 1.9.5 正式发布。本次更新中，我们主要针对桌面客户端强化了 JSON 语法的错误消息提示，并在消息中增加了 JSON 高亮的支持。此外，我们还对 UI 进行了多项修改和优化，以进一步增强用户体验。","2023-08-25","https://assets.emqx.com/images/f82115ce699de70fb54e8f45adacf878.png","1.9.5",{"slug":776,"title":777,"description":778,"date":779,"category":31,"cover":780,"version":-1},"demonstrate-mqtt-5-0-features-using-mqttx-cli","探索 MQTT 5.0 新特性：基于 MQTTX CLI 的使用示例","为了让大家更全面地了解 MQTT 5.0，本文将依次介绍 5.0 引入的各个新特性，并使用 MQTTX CLI 工具演示我们应该如何在 EMQX 中使用这些特性，你可以通过复制和粘贴命令轻松地运行本文中的示例。","2023-08-23","https://assets.emqx.com/images/35e43ae683c590cf512c62cf11a7e8cd.png",{"slug":782,"title":783,"description":784,"date":785,"category":656,"cover":786,"version":787},"mqttx-v-1-9-4-release-notes","MQTTX 1.9.4 发布：全面支持 Protobuf 格式 MQTT 消息传输测试","MQTTX 1.9.4 正式发布：本次更新为用户提供了更高效的 Protobuf 消息传输支持，并优化了自动更新功能，同时进行了一些功能特性的优化和增强。","2023-08-01","https://assets.emqx.com/images/cde7c8e2e51e7398057cb8e11d811192.png","1.9.4",{"slug":789,"title":790,"description":791,"date":792,"category":656,"cover":793,"version":794},"mqttx-1-9-3-introduces-powerful-iot-scenario-data-simulation-feature","提升开发效率：MQTTX 1.9.3 推出强大的 IoT 场景数据模拟功能","MQTTX 1.9.3 为命令行客户端带来了一项重要增强：开发者可以模拟 IoT 场景数据，满足特定的测试需求。","2023-05-29","https://assets.emqx.com/images/657ba5a04f29a7b318206a642223db8f.png","1.9.3",{"slug":796,"title":797,"description":798,"date":799,"category":656,"cover":800,"version":801},"mqttx-v-1-9-2-release-notes","MQTTX 1.9.2 发布：更出色的 MQTT 客户端工具箱","v1.9.2 支持命令行工具的输出模式，用户可以根据需要自定义数据管道，从而更便捷、高效地处理输出数据。","2023-04-27","https://assets.emqx.com/images/44cad865821d28706395fd74e8bd766a.png","1.9.2",{"slug":803,"title":804,"description":805,"date":806,"category":656,"cover":807,"version":808},"mqttx-v-1-9-1-release-notes","MQTTX 1.9.1 发布：资源消耗降低 80%，稳定性大幅提升","MQTT 5.0 客户端工具 MQTT X 1.9.1 稳定版本正式发布，CPU 资源消耗与内存占用减少 80%，整体性能得到大幅优化。","2023-02-10","https://assets.emqx.com/images/c7f10755128e074ae4e28cd8139b790f.png","1.9.1",{"slug":810,"title":811,"description":812,"date":813,"category":656,"cover":814,"version":815},"mqttx-v-1-9-0-release-notes","MQTTX 1.9.0 发布：开箱即用的 bench 命令，MQTT 性能测试更便捷","近日，MQTT 5.0 客户端工具 MQTT X 1.9.0 正式发布：命令行客户端新增了 bench 命令，帮助用户轻松完成 MQTT 服务的性能测试。","2022-11-15","https://assets.emqx.com/images/c5a4b83637473e6e414b11101046771f.png","1.9.0",{"slug":817,"title":818,"description":819,"date":820,"category":656,"cover":821,"version":822},"mqttx-v-1-8-3-release-notes","MQTTX v1.8.3 正式发布","MQTT X v1.8.3 优化了 MQTT 5.0 Clean Start 的使用方式，为会话过期间隔添加默认值；同时也改进了 MQTT X CLI 的默认输出显示。","2022-10-20","https://assets.emqx.com/images/a9fd38699c5731bd4210c81297ac8af4.png","1.8.3",{"slug":824,"title":825,"description":826,"date":827,"category":664,"cover":828,"version":-1},"powerful-and-easy-to-use-mqtt-5-command-line-tool","MQTTX CLI 发布：强大易用的 MQTT 5.0 命令行工具","MQTT X v1.8.0 发布：除了通过新增的快速复制连接功能优化使用体验之外，还增加了 CLI（命令行） 和 Web 端这两种新的交互方式 。","2022-07-21","https://assets.emqx.com/images/2780d4b1fe9f0f3c0792515feb90b1e1.png",{"slug":830,"title":831,"description":832,"date":833,"category":656,"cover":834,"version":835},"mqttx-v-1-7-2-release-notes","MQTTX v1.7.2 正式发布","MQTT X v1.7.1 正式发布：支持设置重连周期，增加更多的 ARM 包，共享订阅支持 Topic 颜色标记。","2022-01-28","https://assets.emqx.com/images/241fe4ef50adbfdea9e43979028757b2.png","1.7.2",{"slug":837,"title":838,"description":839,"date":840,"category":656,"cover":841,"version":842},"mqttx-v-1-7-1-release-notes","MQTTX v1.7.1 正式发布","MQTT X v1.7.1 正式发布，新增支持 MQTT 5.0 订阅标识符、 编辑/启用/禁用 Topic、并优化了 MQTT 5.0 的属性展示。","2022-01-18","https://assets.emqx.com/images/a2df1acb1d15e7e9378ec9e1ebcdc716.png","1.7.1",{"slug":844,"title":845,"description":846,"date":847,"category":656,"cover":848,"version":849},"mqttx-v-1-7-0-release-notes","MQTTX v1.7.0 发布：率先支持 MQTT 5.0 新特性的桌面测试客户端","MQTT X v1.7.0 新增很多关于 MQTT 5.0 的属性配置功能支持，使其成为目前同类工具中支持 MQTT 5.0 最为完整的 MQTT 桌面客户端工具。","2021-12-16","https://assets.emqx.com/images/6ed96b88a4524e11609b2e4fd792574c.png","1.7.0",{"slug":27,"title":28,"description":29,"date":30,"category":31,"cover":32,"version":-1},{"slug":852,"title":853,"description":854,"date":855,"category":656,"cover":856,"version":857},"mqttx-v-1-4-2-release-notes","MQTTX v1.4.2 正式发布 - 跨平台 MQTT 5.0 桌面客户端","MQTT X v1.4.2 正式发布，新增脚本功能、Client ID 自动加入时间戳，并优化了部分功能。","2020-12-19","https://assets.emqx.com/images/8a061565b6d6ce57580c371bc27b63dc.png","1.4.2",{"slug":859,"title":860,"description":861,"date":862,"category":656,"cover":863,"version":864},"mqttx-v-1-3-1-release-notes","MQTTX v1.3.1 发布 - 跨平台 MQTT 5.0 客户端工具","该版本新增： MQTT 5.0 更多属性、单击已订阅的 Topic 项实现消息过滤、点击 Topic 名称后快速复制 Topic 信息、启用严格的证书验证选项。","2020-05-15","https://assets.emqx.com/images/daebe4ee5cf1a736923d821c30949aa2.png","1.3.1",{"slug":866,"title":867,"description":868,"date":869,"category":656,"cover":870,"version":871},"mqttx-v1-3-0-was-officially-released-an-elegant-cross-platform-mqtt5-desktop-test-client","MQTTX v1.3.0 正式发布 - 跨平台 MQTT 5.0 桌面测试客户端","MQTT X 是由 EMQ 开源的一款跨平台 MQTT 5.0 桌面测试客户端，它支持 macOS，Linux，Windows。用户可以使用 MQTT X 快速创建多个同时在线的 MQTT 客户端，方便测试 MQTT/TCP、MQTT/TLS 的连接/发布/订阅功能及其他 MQTT 协议 特性。","2020-03-19","https://assets.emqx.com/images/a6221d0ffcaad5c8019e239340833f44.png","1.3.0",1793585628168]