[{"data":1,"prerenderedAt":2107},["Reactive",2],{"VEb9Nnn1YX":3,"blog-post-zh-mqttx-1-10-0-release-notes":26,"blog-posts-zh":1886},{"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":33,"coverWidth":-1,"coverHeight":-1,"updated":-1,"tags":34,"readingTime":37,"doc":38},"mqttx-1-10-0-release-notes","MQTTX 1.10.0 发布：CLI高级文件管理与配置","在本次更新中，CLI 版本在文件管理和配置功能方面进行了显著增强。主要更新包括：支持从文件中读取和写入消息、高级配置选项、文本输出模式、以及改进的日志记录。","2024-06-14","release-notes","https://assets.emqx.com/images/76adac845cbb113915947ca5b76631a5.jpg","1.10.0",[35,36],"Release Notes","CLI",8,{"_path":39,"_dir":40,"_draft":41,"_partial":41,"_locale":42,"title":28,"description":29,"date":43,"category":31,"tags":44,"cover":32,"version":33,"body":45,"_type":1879,"_id":1880,"_source":1881,"_file":1882,"_extension":1883,"readingTime":37,"sitemap":1884},"/blog/zh/mqttx-1-10-0-release-notes","zh",false,"","2024-06-14T00:00:00.000Z",[35,36],{"type":46,"children":47,"toc":1856},"root",[48,56,61,81,88,93,99,127,151,156,168,179,198,215,224,253,258,266,271,280,300,309,322,327,332,341,359,372,381,386,391,400,411,416,425,454,462,467,480,489,531,543,548,888,893,902,908,921,926,931,939,973,981,1033,1038,1072,1083,1101,1109,1122,1131,1139,1148,1153,1165,1206,1211,1216,1221,1226,1231,1295,1300,1308,1318,1323,1328,1336,1344,1349,1355,1361,1382,1384,1477,1482,1487,1489,1537,1558,1594,1599,1607,1630,1638,1691,1696,1701],{"type":49,"tag":50,"props":51,"children":52},"element","p",{},[53],{"type":54,"value":55},"text","MQTTX 1.10.0 版本现已发布！",{"type":49,"tag":50,"props":57,"children":58},{},[59],{"type":54,"value":60},"在本次更新中，CLI 版本在文件管理和配置功能方面进行了显著增强。主要更新包括：支持从文件中读取和写入消息、高级配置选项、文本输出模式、以及改进的日志记录。此外，桌面版本现在支持数据库重建，以防止文件损坏引起的问题，并且能更好地处理大数据的展示。这些更新希望为所有 MQTTX 用户提供更加强大和用户友好的体验。",{"type":49,"tag":62,"props":63,"children":64},"blockquote",{},[65],{"type":49,"tag":50,"props":66,"children":67},{},[68,74],{"type":49,"tag":69,"props":70,"children":71},"em",{},[72],{"type":54,"value":73},"点击此处下载最新版本：",{"type":49,"tag":75,"props":76,"children":78},"a",{"href":77},"/zh/downloads",[79],{"type":54,"value":80},"https://mqttx.app/zh/downloads",{"type":49,"tag":82,"props":83,"children":85},"h2",{"id":84},"cli-中的文件管理",[86],{"type":54,"value":87},"CLI 中的文件管理",{"type":49,"tag":50,"props":89,"children":90},{},[91],{"type":54,"value":92},"MQTTX 1.10.0 在 CLI 中引入了强大的文件读写功能。此功能可以无缝处理文件输入和输出的消息负载，从而在数据工作流中提供集成和自动化。",{"type":49,"tag":94,"props":95,"children":97},"h3",{"id":96},"文件读取",[98],{"type":54,"value":96},{"type":49,"tag":62,"props":100,"children":101},{},[102],{"type":49,"tag":50,"props":103,"children":104},{},[105,107,116,118,125],{"type":54,"value":106},"注意：由于 ",{"type":49,"tag":75,"props":108,"children":113},{"href":109,"rel":110,"target":112},"https://www.emqx.com/zh/blog/the-easiest-guide-to-getting-started-with-mqtt",[111,111],"noopener","_blank",[114],{"type":54,"value":115},"MQTT",{"type":54,"value":117}," 协议的限制，消息的载荷大小不得超过 256MB。在传输前，请验证你的 ",{"type":49,"tag":75,"props":119,"children":122},{"href":120,"rel":121,"target":112},"https://www.emqx.com/zh/blog/the-ultimate-guide-to-mqtt-broker-comparison",[111,111],[123],{"type":54,"value":124},"MQTT broker",{"type":54,"value":126}," 的载荷大小限制。",{"type":49,"tag":50,"props":128,"children":129},{},[130,136,138,145,146],{"type":49,"tag":131,"props":132,"children":133},"strong",{},[134],{"type":54,"value":135},"使用",{"type":54,"value":137}," ",{"type":49,"tag":139,"props":140,"children":142},"code",{"className":141},[],[143],{"type":54,"value":144},"pub",{"type":54,"value":137},{"type":49,"tag":131,"props":147,"children":148},{},[149],{"type":54,"value":150},"命令",{"type":49,"tag":50,"props":152,"children":153},{},[154],{"type":54,"value":155},"使用以下命令从文件读取消息：",{"type":49,"tag":157,"props":158,"children":163},"pre",{"code":159,"language":160,"meta":42,"className":161},"mqttx pub -t topic --file-read path/to/file\n","shell",[162],"language-shell",[164],{"type":49,"tag":139,"props":165,"children":166},{"__ignoreMap":42},[167],{"type":54,"value":159},{"type":49,"tag":50,"props":169,"children":170},{},[171,177],{"type":49,"tag":139,"props":172,"children":174},{"className":173},[],[175],{"type":54,"value":176},"--file-read",{"type":54,"value":178}," 选项允许你直接从文件读取内容作为发布的载荷。这对于使用预定义的测试数据进行各种发布场景非常方便。",{"type":49,"tag":50,"props":180,"children":181},{},[182,186,187,193,194],{"type":49,"tag":131,"props":183,"children":184},{},[185],{"type":54,"value":135},{"type":54,"value":137},{"type":49,"tag":139,"props":188,"children":190},{"className":189},[],[191],{"type":54,"value":192},"bench pub",{"type":54,"value":137},{"type":49,"tag":131,"props":195,"children":196},{},[197],{"type":54,"value":150},{"type":49,"tag":50,"props":199,"children":200},{},[201,206,208,213],{"type":49,"tag":139,"props":202,"children":204},{"className":203},[],[205],{"type":54,"value":176},{"type":54,"value":207}," 命令从文件中读取消息体，类似于简单的 ",{"type":49,"tag":139,"props":209,"children":211},{"className":210},[],[212],{"type":54,"value":144},{"type":54,"value":214}," 命令：",{"type":49,"tag":157,"props":216,"children":219},{"code":217,"language":160,"meta":42,"className":218},"mqttx bench pub -c 10 -t topic --file-read path/to/file\n",[162],[220],{"type":49,"tag":139,"props":221,"children":222},{"__ignoreMap":42},[223],{"type":54,"value":217},{"type":49,"tag":50,"props":225,"children":226},{},[227,229,235,237,243,245,251],{"type":54,"value":228},"利用 ",{"type":49,"tag":139,"props":230,"children":232},{"className":231},[],[233],{"type":54,"value":234},"bench",{"type":54,"value":236}," 命令的内置强大功能，您可以通过使用 ",{"type":49,"tag":139,"props":238,"children":240},{"className":239},[],[241],{"type":54,"value":242},"--split",{"type":54,"value":244}," 选项将文件内容分割到单独的消息中，以便发送不同的数据段。默认字符是 ",{"type":49,"tag":139,"props":246,"children":248},{"className":247},[],[249],{"type":54,"value":250},"\\n",{"type":54,"value":252},"。",{"type":49,"tag":50,"props":254,"children":255},{},[256],{"type":54,"value":257},"例如，有一个包含以下内容的文件：",{"type":49,"tag":157,"props":259,"children":261},{"code":260},"hello\nworld\n",[262],{"type":49,"tag":139,"props":263,"children":264},{"__ignoreMap":42},[265],{"type":54,"value":260},{"type":49,"tag":50,"props":267,"children":268},{},[269],{"type":54,"value":270},"您可以使用：",{"type":49,"tag":157,"props":272,"children":275},{"code":273,"language":160,"meta":42,"className":274},"mqttx bench pub -c 10 -t topic --file-read path/to/file --split\n",[162],[276],{"type":49,"tag":139,"props":277,"children":278},{"__ignoreMap":42},[279],{"type":54,"value":273},{"type":49,"tag":50,"props":281,"children":282},{},[283,285,290,292,298],{"type":54,"value":284},"如果文件是用逗号分隔的，将 ",{"type":49,"tag":139,"props":286,"children":288},{"className":287},[],[289],{"type":54,"value":242},{"type":54,"value":291}," 改为 ",{"type":49,"tag":139,"props":293,"children":295},{"className":294},[],[296],{"type":54,"value":297},",",{"type":54,"value":299},"：",{"type":49,"tag":157,"props":301,"children":304},{"code":302,"language":160,"meta":42,"className":303},"mqttx bench pub -c 10 -t topic --file-read path/to/file --split ','\n",[162],[305],{"type":49,"tag":139,"props":306,"children":307},{"__ignoreMap":42},[308],{"type":54,"value":302},{"type":49,"tag":50,"props":310,"children":311},{},[312,314,320],{"type":54,"value":313},"最后还可以设置 ",{"type":49,"tag":139,"props":315,"children":317},{"className":316},[],[318],{"type":54,"value":319},"-im",{"type":54,"value":321}," 来定义发布消息的时间间隔。",{"type":49,"tag":94,"props":323,"children":325},{"id":324},"文件写入",[326],{"type":54,"value":324},{"type":49,"tag":50,"props":328,"children":329},{},[330],{"type":54,"value":331},"如果要将收到的消息写入到文件中，可以使用以下命令：",{"type":49,"tag":157,"props":333,"children":336},{"code":334,"language":160,"meta":42,"className":335},"mqttx sub -t topic --file-write path/to/file\n",[162],[337],{"type":49,"tag":139,"props":338,"children":339},{"__ignoreMap":42},[340],{"type":54,"value":334},{"type":49,"tag":50,"props":342,"children":343},{},[344,350,352,357],{"type":49,"tag":139,"props":345,"children":347},{"className":346},[],[348],{"type":54,"value":349},"--file-write",{"type":54,"value":351}," 选项会将每条消息追加到文件中，每条消息默认使用换行符 ",{"type":49,"tag":139,"props":353,"children":355},{"className":354},[],[356],{"type":54,"value":250},{"type":54,"value":358}," 分隔，这非常适合用于日志记录或累积文本数据。对于需要维持连续接收消息日志的应用程序来说，这个功能非常方便。",{"type":49,"tag":50,"props":360,"children":361},{},[362,364,370],{"type":54,"value":363},"如果要更改分隔符，可以使用 ",{"type":49,"tag":139,"props":365,"children":367},{"className":366},[],[368],{"type":54,"value":369},"--delimiter",{"type":54,"value":371}," 选项。例如：",{"type":49,"tag":157,"props":373,"children":376},{"code":374,"language":160,"meta":42,"className":375},"mqttx sub -t topic --file-write path/to/file --delimiter ','\n",[162],[377],{"type":49,"tag":139,"props":378,"children":379},{"__ignoreMap":42},[380],{"type":54,"value":374},{"type":49,"tag":94,"props":382,"children":384},{"id":383},"文件保存",[385],{"type":54,"value":383},{"type":49,"tag":50,"props":387,"children":388},{},[389],{"type":54,"value":390},"若要将每条单独的消息保存为一份单独的文件，请使用：",{"type":49,"tag":157,"props":392,"children":395},{"code":393,"language":160,"meta":42,"className":394},"mqttx sub -t topic --file-save path/to/file\n",[162],[396],{"type":49,"tag":139,"props":397,"children":398},{"__ignoreMap":42},[399],{"type":54,"value":393},{"type":49,"tag":50,"props":401,"children":402},{},[403,409],{"type":49,"tag":139,"props":404,"children":406},{"className":405},[],[407],{"type":54,"value":408},"--file-save",{"type":54,"value":410}," 选项将每条传入的消息保存为一个单独的文件。已有的文件将自动重新编号并保存，以防止覆盖。此功能对于需要存储单个消息以进行进一步处理或分析的应用程序非常方便。",{"type":49,"tag":50,"props":412,"children":413},{},[414],{"type":54,"value":415},"例如，要将传入的消息保存到指定的目录：",{"type":49,"tag":157,"props":417,"children":420},{"code":418,"language":160,"meta":42,"className":419},"mqttx sub -t topic --file-save /path/to/directory/message.txt\n",[162],[421],{"type":49,"tag":139,"props":422,"children":423},{"__ignoreMap":42},[424],{"type":54,"value":418},{"type":49,"tag":50,"props":426,"children":427},{},[428,430,436,438,444,446,452],{"type":54,"value":429},"如果 ",{"type":49,"tag":139,"props":431,"children":433},{"className":432},[],[434],{"type":54,"value":435},"/path/to/directory/message.txt",{"type":54,"value":437}," 已经存在，新的消息将被保存为 ",{"type":49,"tag":139,"props":439,"children":441},{"className":440},[],[442],{"type":54,"value":443},"message(1).txt",{"type":54,"value":445},"、",{"type":49,"tag":139,"props":447,"children":449},{"className":448},[],[450],{"type":54,"value":451},"message(2).txt",{"type":54,"value":453}," 等。这样可以防止由于覆盖现有文件而导致的任何数据丢失。",{"type":49,"tag":62,"props":455,"children":456},{},[457],{"type":49,"tag":50,"props":458,"children":459},{},[460],{"type":54,"value":461},"请勿同时使用 --file-write 和 --file-save。",{"type":49,"tag":94,"props":463,"children":465},{"id":464},"类型格式",[466],{"type":54,"value":464},{"type":49,"tag":50,"props":468,"children":469},{},[470,472,478],{"type":54,"value":471},"文件传输也支持指定对应的文件格式来格式化消息。如果未指定，默认为纯文本（UTF-8）格式。可以使用 ",{"type":49,"tag":139,"props":473,"children":475},{"className":474},[],[476],{"type":54,"value":477},"--format",{"type":54,"value":479}," 选项对消息内容进行格式化以处理不同的数据格式：",{"type":49,"tag":157,"props":481,"children":484},{"code":482,"language":160,"meta":42,"className":483},"mqttx pub -t topic --file-read path/to/file --format type\nmqttx sub -t topic --file-save path/to/file --format type\n",[162],[485],{"type":49,"tag":139,"props":486,"children":487},{"__ignoreMap":42},[488],{"type":54,"value":482},{"type":49,"tag":50,"props":490,"children":491},{},[492,494,500,502,508,509,515,516,522,524,530],{"type":54,"value":493},"支持输出到文件的数据格式包括 ",{"type":49,"tag":139,"props":495,"children":497},{"className":496},[],[498],{"type":54,"value":499},"json",{"type":54,"value":501},"，",{"type":49,"tag":139,"props":503,"children":505},{"className":504},[],[506],{"type":54,"value":507},"base64",{"type":54,"value":501},{"type":49,"tag":139,"props":510,"children":512},{"className":511},[],[513],{"type":54,"value":514},"hex",{"type":54,"value":501},{"type":49,"tag":139,"props":517,"children":519},{"className":518},[],[520],{"type":54,"value":521},"binary",{"type":54,"value":523}," 和 ",{"type":49,"tag":139,"props":525,"children":527},{"className":526},[],[528],{"type":54,"value":529},"cbor",{"type":54,"value":252},{"type":49,"tag":50,"props":532,"children":533},{},[534,536,541],{"type":54,"value":535},"为此，该版本还引入了一个新的 ",{"type":49,"tag":139,"props":537,"children":539},{"className":538},[],[540],{"type":54,"value":521},{"type":54,"value":542}," 格式来处理更常见的文件传输场景。通过指定二进制格式，MQTTX 收发时将处理和生成相应的二进制文件。",{"type":49,"tag":50,"props":544,"children":545},{},[546],{"type":54,"value":547},"如果文件有以下扩展名，它将自动识别文件格式为二进制：",{"type":49,"tag":549,"props":550,"children":551},"ul",{},[552,617,681,745,809,866],{"type":49,"tag":553,"props":554,"children":555},"li",{},[556,561,562,568,569,575,576,582,583,589,590,596,597,603,604,610,611],{"type":49,"tag":131,"props":557,"children":558},{},[559],{"type":54,"value":560},"图片：",{"type":54,"value":137},{"type":49,"tag":139,"props":563,"children":565},{"className":564},[],[566],{"type":54,"value":567},".png",{"type":54,"value":501},{"type":49,"tag":139,"props":570,"children":572},{"className":571},[],[573],{"type":54,"value":574},".jpg",{"type":54,"value":501},{"type":49,"tag":139,"props":577,"children":579},{"className":578},[],[580],{"type":54,"value":581},".jpeg",{"type":54,"value":501},{"type":49,"tag":139,"props":584,"children":586},{"className":585},[],[587],{"type":54,"value":588},".gif",{"type":54,"value":501},{"type":49,"tag":139,"props":591,"children":593},{"className":592},[],[594],{"type":54,"value":595},".bmp",{"type":54,"value":501},{"type":49,"tag":139,"props":598,"children":600},{"className":599},[],[601],{"type":54,"value":602},".ico",{"type":54,"value":501},{"type":49,"tag":139,"props":605,"children":607},{"className":606},[],[608],{"type":54,"value":609},".tif",{"type":54,"value":501},{"type":49,"tag":139,"props":612,"children":614},{"className":613},[],[615],{"type":54,"value":616},".tiff",{"type":49,"tag":553,"props":618,"children":619},{},[620,625,626,632,633,639,640,646,647,653,654,660,661,667,668,674,675],{"type":49,"tag":131,"props":621,"children":622},{},[623],{"type":54,"value":624},"视频：",{"type":54,"value":137},{"type":49,"tag":139,"props":627,"children":629},{"className":628},[],[630],{"type":54,"value":631},".mp4",{"type":54,"value":501},{"type":49,"tag":139,"props":634,"children":636},{"className":635},[],[637],{"type":54,"value":638},".avi",{"type":54,"value":501},{"type":49,"tag":139,"props":641,"children":643},{"className":642},[],[644],{"type":54,"value":645},".mov",{"type":54,"value":501},{"type":49,"tag":139,"props":648,"children":650},{"className":649},[],[651],{"type":54,"value":652},".mkv",{"type":54,"value":501},{"type":49,"tag":139,"props":655,"children":657},{"className":656},[],[658],{"type":54,"value":659},".flv",{"type":54,"value":501},{"type":49,"tag":139,"props":662,"children":664},{"className":663},[],[665],{"type":54,"value":666},".wmv",{"type":54,"value":501},{"type":49,"tag":139,"props":669,"children":671},{"className":670},[],[672],{"type":54,"value":673},".mpeg",{"type":54,"value":501},{"type":49,"tag":139,"props":676,"children":678},{"className":677},[],[679],{"type":54,"value":680},".3gp",{"type":49,"tag":553,"props":682,"children":683},{},[684,689,690,696,697,703,704,710,711,717,718,724,725,731,732,738,739],{"type":49,"tag":131,"props":685,"children":686},{},[687],{"type":54,"value":688},"音频：",{"type":54,"value":137},{"type":49,"tag":139,"props":691,"children":693},{"className":692},[],[694],{"type":54,"value":695},".mp3",{"type":54,"value":501},{"type":49,"tag":139,"props":698,"children":700},{"className":699},[],[701],{"type":54,"value":702},".wav",{"type":54,"value":501},{"type":49,"tag":139,"props":705,"children":707},{"className":706},[],[708],{"type":54,"value":709},".flac",{"type":54,"value":501},{"type":49,"tag":139,"props":712,"children":714},{"className":713},[],[715],{"type":54,"value":716},".aac",{"type":54,"value":501},{"type":49,"tag":139,"props":719,"children":721},{"className":720},[],[722],{"type":54,"value":723},".ogg",{"type":54,"value":501},{"type":49,"tag":139,"props":726,"children":728},{"className":727},[],[729],{"type":54,"value":730},".wma",{"type":54,"value":501},{"type":49,"tag":139,"props":733,"children":735},{"className":734},[],[736],{"type":54,"value":737},".m4a",{"type":54,"value":501},{"type":49,"tag":139,"props":740,"children":742},{"className":741},[],[743],{"type":54,"value":744},".m4p",{"type":49,"tag":553,"props":746,"children":747},{},[748,753,754,760,761,767,768,774,775,781,782,788,789,795,796,802,803],{"type":49,"tag":131,"props":749,"children":750},{},[751],{"type":54,"value":752},"压缩：",{"type":54,"value":137},{"type":49,"tag":139,"props":755,"children":757},{"className":756},[],[758],{"type":54,"value":759},".zip",{"type":54,"value":501},{"type":49,"tag":139,"props":762,"children":764},{"className":763},[],[765],{"type":54,"value":766},".gz",{"type":54,"value":501},{"type":49,"tag":139,"props":769,"children":771},{"className":770},[],[772],{"type":54,"value":773},".rar",{"type":54,"value":501},{"type":49,"tag":139,"props":776,"children":778},{"className":777},[],[779],{"type":54,"value":780},".tar",{"type":54,"value":501},{"type":49,"tag":139,"props":783,"children":785},{"className":784},[],[786],{"type":54,"value":787},".7z",{"type":54,"value":501},{"type":49,"tag":139,"props":790,"children":792},{"className":791},[],[793],{"type":54,"value":794},".bz2",{"type":54,"value":501},{"type":49,"tag":139,"props":797,"children":799},{"className":798},[],[800],{"type":54,"value":801},".xz",{"type":54,"value":501},{"type":49,"tag":139,"props":804,"children":806},{"className":805},[],[807],{"type":54,"value":808},".jar",{"type":49,"tag":553,"props":810,"children":811},{},[812,817,818,824,825,831,832,838,839,845,846,852,853,859,860],{"type":49,"tag":131,"props":813,"children":814},{},[815],{"type":54,"value":816},"二进制：",{"type":54,"value":137},{"type":49,"tag":139,"props":819,"children":821},{"className":820},[],[822],{"type":54,"value":823},".bin",{"type":54,"value":501},{"type":49,"tag":139,"props":826,"children":828},{"className":827},[],[829],{"type":54,"value":830},".exe",{"type":54,"value":501},{"type":49,"tag":139,"props":833,"children":835},{"className":834},[],[836],{"type":54,"value":837},".dll",{"type":54,"value":501},{"type":49,"tag":139,"props":840,"children":842},{"className":841},[],[843],{"type":54,"value":844},".so",{"type":54,"value":501},{"type":49,"tag":139,"props":847,"children":849},{"className":848},[],[850],{"type":54,"value":851},".dmg",{"type":54,"value":501},{"type":49,"tag":139,"props":854,"children":856},{"className":855},[],[857],{"type":54,"value":858},".iso",{"type":54,"value":501},{"type":49,"tag":139,"props":861,"children":863},{"className":862},[],[864],{"type":54,"value":865},".img",{"type":49,"tag":553,"props":867,"children":868},{},[869,874,875,881,882],{"type":49,"tag":131,"props":870,"children":871},{},[872],{"type":54,"value":873},"文档：",{"type":54,"value":137},{"type":49,"tag":139,"props":876,"children":878},{"className":877},[],[879],{"type":54,"value":880},".pdf",{"type":54,"value":501},{"type":49,"tag":139,"props":883,"children":885},{"className":884},[],[886],{"type":54,"value":887},".epub",{"type":49,"tag":50,"props":889,"children":890},{},[891],{"type":54,"value":892},"要手动指定二进制格式，使用：",{"type":49,"tag":157,"props":894,"children":897},{"code":895,"language":160,"meta":42,"className":896},"mqttx pub -t topic --file-read path/to/file --format binary\nmqttx sub -t topic --file-save path/to/file --format binary\n",[162],[898],{"type":49,"tag":139,"props":899,"children":900},{"__ignoreMap":42},[901],{"type":54,"value":895},{"type":49,"tag":82,"props":903,"children":905},{"id":904},"cli-配置文件",[906],{"type":54,"value":907},"CLI 配置文件",{"type":49,"tag":50,"props":909,"children":910},{},[911,913,919],{"type":54,"value":912},"此版本引入了配置文件功能，它可以存储各种设置的默认值，为 MQTTX CLI 提供了简化和可定制的体验。初始化后，配置文件将存储在用户的主目录 ",{"type":49,"tag":139,"props":914,"children":916},{"className":915},[],[917],{"type":54,"value":918},"$HOME/.mqttx-cli/config",{"type":54,"value":920}," 中。",{"type":49,"tag":94,"props":922,"children":924},{"id":923},"功能",[925],{"type":54,"value":923},{"type":49,"tag":50,"props":927,"children":928},{},[929],{"type":54,"value":930},"配置文件包括用于控制界面和功能参数的设置。这些设置允许 MQTTX CLI 使用预定义的值，提高效率，避免需要反复输入信息。",{"type":49,"tag":50,"props":932,"children":933},{},[934],{"type":49,"tag":131,"props":935,"children":936},{},[937],{"type":54,"value":938},"默认：",{"type":49,"tag":549,"props":940,"children":941},{},[942],{"type":49,"tag":553,"props":943,"children":944},{},[945,950],{"type":49,"tag":131,"props":946,"children":947},{},[948],{"type":54,"value":949},"output",{"type":49,"tag":549,"props":951,"children":952},{},[953,963],{"type":49,"tag":553,"props":954,"children":955},{},[956,961],{"type":49,"tag":131,"props":957,"children":958},{},[959],{"type":54,"value":960},"text:",{"type":54,"value":962}," 默认模式提供包含关键信息的简洁输出。",{"type":49,"tag":553,"props":964,"children":965},{},[966,971],{"type":49,"tag":131,"props":967,"children":968},{},[969],{"type":54,"value":970},"log:",{"type":54,"value":972}," 显示带有日期和时间戳的详细日志输出。",{"type":49,"tag":50,"props":974,"children":975},{},[976],{"type":49,"tag":131,"props":977,"children":978},{},[979],{"type":54,"value":980},"MQTT:",{"type":49,"tag":549,"props":982,"children":983},{},[984,994,1004,1014,1024],{"type":49,"tag":553,"props":985,"children":986},{},[987,992],{"type":49,"tag":131,"props":988,"children":989},{},[990],{"type":54,"value":991},"host:",{"type":54,"value":993}," 默认是 localhost。",{"type":49,"tag":553,"props":995,"children":996},{},[997,1002],{"type":49,"tag":131,"props":998,"children":999},{},[1000],{"type":54,"value":1001},"port:",{"type":54,"value":1003}," 默认是 1883。",{"type":49,"tag":553,"props":1005,"children":1006},{},[1007,1012],{"type":49,"tag":131,"props":1008,"children":1009},{},[1010],{"type":54,"value":1011},"max_reconnect_times:",{"type":54,"value":1013}," 默认是 10。",{"type":49,"tag":553,"props":1015,"children":1016},{},[1017,1022],{"type":49,"tag":131,"props":1018,"children":1019},{},[1020],{"type":54,"value":1021},"username:",{"type":54,"value":1023}," 默认为空。",{"type":49,"tag":553,"props":1025,"children":1026},{},[1027,1032],{"type":49,"tag":131,"props":1028,"children":1029},{},[1030],{"type":54,"value":1031},"password:",{"type":54,"value":1023},{"type":49,"tag":50,"props":1034,"children":1035},{},[1036],{"type":54,"value":1037},"默认部分中的 output 设置控制 CLI 的输出显示。用户可以根据自己的需要选择不同的模式。",{"type":49,"tag":50,"props":1039,"children":1040},{},[1041,1043,1049,1051,1057,1058,1064,1066],{"type":54,"value":1042},"如果命令行没有提供这些参数，MQTTX CLI 将使用 mqtt 部分中的配置文件中的值。",{"type":49,"tag":139,"props":1044,"children":1046},{"className":1045},[],[1047],{"type":54,"value":1048},"host",{"type":54,"value":1050},", ",{"type":49,"tag":139,"props":1052,"children":1054},{"className":1053},[],[1055],{"type":54,"value":1056},"port",{"type":54,"value":1050},{"type":49,"tag":139,"props":1059,"children":1061},{"className":1060},[],[1062],{"type":54,"value":1063},"username",{"type":54,"value":1065},", 和 ",{"type":49,"tag":139,"props":1067,"children":1069},{"className":1068},[],[1070],{"type":54,"value":1071},"password",{"type":49,"tag":50,"props":1073,"children":1074},{},[1075,1081],{"type":49,"tag":139,"props":1076,"children":1078},{"className":1077},[],[1079],{"type":54,"value":1080},"max_reconnect_times",{"type":54,"value":1082}," 控制重连尝试的次数。一旦到达设定的次数，连接将自动关闭，以防止无限制的重连。",{"type":49,"tag":50,"props":1084,"children":1085},{},[1086,1088,1093,1094,1099],{"type":54,"value":1087},"如果不需要 ",{"type":49,"tag":139,"props":1089,"children":1091},{"className":1090},[],[1092],{"type":54,"value":1063},{"type":54,"value":523},{"type":49,"tag":139,"props":1095,"children":1097},{"className":1096},[],[1098],{"type":54,"value":1071},{"type":54,"value":1100}," 这样的配置项，它们可以从配置文件中省略。",{"type":49,"tag":50,"props":1102,"children":1103},{},[1104],{"type":49,"tag":131,"props":1105,"children":1106},{},[1107],{"type":54,"value":1108},"初始化配置",{"type":49,"tag":50,"props":1110,"children":1111},{},[1112,1114,1120],{"type":54,"value":1113},"默认情况下不提供配置文件。要创建或更新配置文件，运行 ",{"type":49,"tag":139,"props":1115,"children":1117},{"className":1116},[],[1118],{"type":54,"value":1119},"init",{"type":54,"value":1121}," 命令。此命令将提示你输入所需的值：",{"type":49,"tag":157,"props":1123,"children":1126},{"code":1124,"language":160,"meta":42,"className":1125},"mqttx init\n? Select MQTTX CLI output mode Text\n? Enter the default MQTT broker host broker.emqx.io\n? Enter the default MQTT port 1883\n? Enter the maximum reconnect times for MQTT connection 5\n? Enter the default username for MQTT connection authentication admin\n? Enter the default password for MQTT connection authentication ******\nConfiguration file created/updated at /Users/.mqttx-cli/config\n",[162],[1127],{"type":49,"tag":139,"props":1128,"children":1129},{"__ignoreMap":42},[1130],{"type":54,"value":1124},{"type":49,"tag":50,"props":1132,"children":1133},{},[1134],{"type":49,"tag":131,"props":1135,"children":1136},{},[1137],{"type":54,"value":1138},"配置文件示例",{"type":49,"tag":157,"props":1140,"children":1143},{"code":1141,"language":160,"meta":42,"className":1142},"[default]\noutput = text\n[mqtt]\nhost = broker.emqx.io\nport = 1883\nmax_reconnect_times = 5\nusername = admin\npassword = public\n",[162],[1144],{"type":49,"tag":139,"props":1145,"children":1146},{"__ignoreMap":42},[1147],{"type":54,"value":1141},{"type":49,"tag":94,"props":1149,"children":1151},{"id":1150},"界面改进",[1152],{"type":54,"value":1150},{"type":49,"tag":50,"props":1154,"children":1155},{},[1156,1158,1163],{"type":54,"value":1157},"配置文件中的 ",{"type":49,"tag":139,"props":1159,"children":1161},{"className":1160},[],[1162],{"type":54,"value":949},{"type":54,"value":1164}," 设置提供了两种模式：",{"type":49,"tag":549,"props":1166,"children":1167},{},[1168,1187],{"type":49,"tag":553,"props":1169,"children":1170},{},[1171,1176,1178],{"type":49,"tag":131,"props":1172,"children":1173},{},[1174],{"type":54,"value":1175},"文本模式：",{"type":54,"value":1177}," 提供简洁清晰的输出，只包含关键信息，便于阅读和理解。",{"type":49,"tag":157,"props":1179,"children":1182},{"code":1180,"language":160,"meta":42,"className":1181},"mqttx conn\n✔ Connected\n",[162],[1183],{"type":49,"tag":139,"props":1184,"children":1185},{"__ignoreMap":42},[1186],{"type":54,"value":1180},{"type":49,"tag":553,"props":1188,"children":1189},{},[1190,1195,1197],{"type":49,"tag":131,"props":1191,"children":1192},{},[1193],{"type":54,"value":1194},"日志模式：",{"type":54,"value":1196}," 此模式显示带有日期和时间戳的详细日志输出，有助于记录和调试。",{"type":49,"tag":157,"props":1198,"children":1201},{"code":1199,"language":160,"meta":42,"className":1200},"mqttx conn\n[5/24/2024] [11:26:17 AM] › …  Connecting...\n[5/24/2024] [11:26:17 AM] › ✔  Connected\n",[162],[1202],{"type":49,"tag":139,"props":1203,"children":1204},{"__ignoreMap":42},[1205],{"type":54,"value":1199},{"type":49,"tag":50,"props":1207,"children":1208},{},[1209],{"type":54,"value":1210},"用户可以通过选择适当的输出模式，根据自己的工作流和偏好定制 MQTTX CLI。",{"type":49,"tag":82,"props":1212,"children":1214},{"id":1213},"桌面版本白屏问题",[1215],{"type":54,"value":1213},{"type":49,"tag":50,"props":1217,"children":1218},{},[1219],{"type":54,"value":1220},"我们对桌面版本中白屏问题的报告进行了调查，找出了两个主要原因：数据库文件损坏和处理大消息负载时的性能问题。为解决这些问题，我们对 MQTTX 进行了优化。",{"type":49,"tag":94,"props":1222,"children":1224},{"id":1223},"数据库重建",[1225],{"type":54,"value":1223},{"type":49,"tag":50,"props":1227,"children":1228},{},[1229],{"type":54,"value":1230},"SQLite 数据库文件损坏可能由多种因素引起，特别是在软件升级后：",{"type":49,"tag":1232,"props":1233,"children":1234},"ol",{},[1235,1245,1255,1265,1275,1285],{"type":49,"tag":553,"props":1236,"children":1237},{},[1238,1243],{"type":49,"tag":131,"props":1239,"children":1240},{},[1241],{"type":54,"value":1242},"架构改变不兼容",{"type":54,"value":1244},"：在升级过程中改变数据库结构，但没有正确迁移旧数据。",{"type":49,"tag":553,"props":1246,"children":1247},{},[1248,1253],{"type":49,"tag":131,"props":1249,"children":1250},{},[1251],{"type":54,"value":1252},"升级中断",{"type":54,"value":1254},"：软件更新期间出现意外中断导致数据库文件不完整。",{"type":49,"tag":553,"props":1256,"children":1257},{},[1258,1263],{"type":49,"tag":131,"props":1259,"children":1260},{},[1261],{"type":54,"value":1262},"竞态条件",{"type":54,"value":1264},"：并发访问没有正确管理，导致写入冲突。",{"type":49,"tag":553,"props":1266,"children":1267},{},[1268,1273],{"type":49,"tag":131,"props":1269,"children":1270},{},[1271],{"type":54,"value":1272},"升级脚本出错",{"type":54,"value":1274},"：更新期间数据库脚本执行错误影响数据完整性。",{"type":49,"tag":553,"props":1276,"children":1277},{},[1278,1283],{"type":49,"tag":131,"props":1279,"children":1280},{},[1281],{"type":54,"value":1282},"磁盘空间不足",{"type":54,"value":1284},"：更新期间由于空间不足阻止完整的数据写入。",{"type":49,"tag":553,"props":1286,"children":1287},{},[1288,1293],{"type":49,"tag":131,"props":1289,"children":1290},{},[1291],{"type":54,"value":1292},"文件系统或硬件问题",{"type":54,"value":1294},"：底层存储问题导致文件损坏。",{"type":49,"tag":50,"props":1296,"children":1297},{},[1298],{"type":54,"value":1299},"当出现这些问题时，用户无法打开 MQTTX。新版本的 MQTTX 检测到数据库文件损坏时，会显示出一个数据库重建页面。用户可以点击重建按钮来修复损坏的数据库文件并重新初始化数据。",{"type":49,"tag":62,"props":1301,"children":1302},{},[1303],{"type":49,"tag":50,"props":1304,"children":1305},{},[1306],{"type":54,"value":1307},"注意：数据库重建后，所有本地数据将会丢失。",{"type":49,"tag":50,"props":1309,"children":1310},{},[1311],{"type":49,"tag":1312,"props":1313,"children":1317},"img",{"alt":1223,"src":1314,"loading":1315,"decoding":1316},"https://assets.emqx.com/images/5ffffea84aac38f13a52c96a25663e22.png?x-image-process=image/resize,w_1520/format,webp","lazy","async",[],{"type":49,"tag":50,"props":1319,"children":1320},{},[1321],{"type":54,"value":1322},"另一个问题是由大型消息负载造成的性能损失。虽然通常情况下的 MQTT 消息负载通常在 1MB 以下，但最大也可达 256 MB。因此当用户发送大文件时，MQTTX 在渲染这些消息时可能会导致用户界面冻结或崩溃，结果显示白屏。",{"type":49,"tag":50,"props":1324,"children":1325},{},[1326],{"type":54,"value":1327},"在新版本中，我们添加了一个数据阈值。当负载大小超过 512KB 时，MQTTX 只会显示消息内容的一部分。用户可以点击“显示更多”以查看完整消息。此外，用户还可以使用“保存到本地”按钮将大型消息保存到本地系统，以便使用其他应用程序查看。",{"type":49,"tag":50,"props":1329,"children":1330},{},[1331],{"type":49,"tag":1312,"props":1332,"children":1335},{"alt":1333,"src":1334,"loading":1315,"decoding":1316},"点击查看更多","https://assets.emqx.com/images/dace20d9bb40a5fe982b636764cfa767.png?x-image-process=image/resize,w_1520/format,webp",[],{"type":49,"tag":50,"props":1337,"children":1338},{},[1339],{"type":49,"tag":1312,"props":1340,"children":1343},{"alt":1341,"src":1342,"loading":1315,"decoding":1316},"保存到本地","https://assets.emqx.com/images/b0a3c32ec345e784ebd2e29814f8ef5b.png?x-image-process=image/resize,w_1520/format,webp",[],{"type":49,"tag":50,"props":1345,"children":1346},{},[1347],{"type":54,"value":1348},"这些改进确保 MQTTX 可以更有效地处理大型负载，防止用户界面冻结，并提高整体用户体验。",{"type":49,"tag":82,"props":1350,"children":1352},{"id":1351},"web-版更新",[1353],{"type":54,"value":1354},"Web 版更新",{"type":49,"tag":94,"props":1356,"children":1358},{"id":1357},"通过-env-文件支持-base_url-配置",[1359],{"type":54,"value":1360},"通过 env 文件支持 BASE_URL 配置",{"type":49,"tag":50,"props":1362,"children":1363},{},[1364,1366,1372,1374,1380],{"type":54,"value":1365},"如果您需要进行个性化设置，如修改默认连接路径、部署路径或输出路径，您可以在 ",{"type":49,"tag":139,"props":1367,"children":1369},{"className":1368},[],[1370],{"type":54,"value":1371},"web/.env",{"type":54,"value":1373}," 或 ",{"type":49,"tag":139,"props":1375,"children":1377},{"className":1376},[],[1378],{"type":54,"value":1379},"web/.env.docker",{"type":54,"value":1381}," 文件中进行相应修改。这两个文件对应不同的打包需求，您可以根据实际情况进行修改。",{"type":54,"value":1383},"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",{"type":49,"tag":1385,"props":1386,"children":1387},"table",{},[1388,1407],{"type":49,"tag":1389,"props":1390,"children":1391},"thead",{},[1392],{"type":49,"tag":1393,"props":1394,"children":1395},"tr",{},[1396,1402],{"type":49,"tag":1397,"props":1398,"children":1399},"th",{},[1400],{"type":54,"value":1401},"配置项",{"type":49,"tag":1397,"props":1403,"children":1404},{},[1405],{"type":54,"value":1406},"描述",{"type":49,"tag":1408,"props":1409,"children":1410},"tbody",{},[1411,1425,1438,1451,1464],{"type":49,"tag":1393,"props":1412,"children":1413},{},[1414,1420],{"type":49,"tag":1415,"props":1416,"children":1417},"td",{},[1418],{"type":54,"value":1419},"VUE_APP_PAGE_TITLE",{"type":49,"tag":1415,"props":1421,"children":1422},{},[1423],{"type":54,"value":1424},"浏览器标题栏显示的标题",{"type":49,"tag":1393,"props":1426,"children":1427},{},[1428,1433],{"type":49,"tag":1415,"props":1429,"children":1430},{},[1431],{"type":54,"value":1432},"VUE_APP_PAGE_DESCRIPTION",{"type":49,"tag":1415,"props":1434,"children":1435},{},[1436],{"type":54,"value":1437},"用于 SEO 的简洁页面描述",{"type":49,"tag":1393,"props":1439,"children":1440},{},[1441,1446],{"type":49,"tag":1415,"props":1442,"children":1443},{},[1444],{"type":54,"value":1445},"VUE_APP_DEFAULT_HOST",{"type":49,"tag":1415,"props":1447,"children":1448},{},[1449],{"type":54,"value":1450},"MQTT broker 服务器连接的默认地址",{"type":49,"tag":1393,"props":1452,"children":1453},{},[1454,1459],{"type":49,"tag":1415,"props":1455,"children":1456},{},[1457],{"type":54,"value":1458},"BASE_URL",{"type":49,"tag":1415,"props":1460,"children":1461},{},[1462],{"type":54,"value":1463},"应用部署的根 URL，有助于构建链接和路由",{"type":49,"tag":1393,"props":1465,"children":1466},{},[1467,1472],{"type":49,"tag":1415,"props":1468,"children":1469},{},[1470],{"type":54,"value":1471},"VUE_APP_OUTPUT_DIR",{"type":49,"tag":1415,"props":1473,"children":1474},{},[1475],{"type":54,"value":1476},"编译后的构建文件将被放置的目录",{"type":49,"tag":50,"props":1478,"children":1479},{},[1480],{"type":54,"value":1481},"这些更新旨在提供更灵活、用户友好的体验，使您可以根据需求定制 MQTTX 网页版设置。",{"type":49,"tag":82,"props":1483,"children":1485},{"id":1484},"重要更新",[1486],{"type":54,"value":1484},{"type":54,"value":1488},"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",{"type":49,"tag":1385,"props":1490,"children":1491},{},[1492,1508],{"type":49,"tag":1389,"props":1493,"children":1494},{},[1495],{"type":49,"tag":1393,"props":1496,"children":1497},{},[1498,1503],{"type":49,"tag":1397,"props":1499,"children":1500},{},[1501],{"type":54,"value":1502},"旧命令",{"type":49,"tag":1397,"props":1504,"children":1505},{},[1506],{"type":54,"value":1507},"新命令",{"type":49,"tag":1408,"props":1509,"children":1510},{},[1511,1524],{"type":49,"tag":1393,"props":1512,"children":1513},{},[1514,1519],{"type":49,"tag":1415,"props":1515,"children":1516},{},[1517],{"type":54,"value":1518},"mqttx conn -h broker.emqx.io -p 1883 --save",{"type":49,"tag":1415,"props":1520,"children":1521},{},[1522],{"type":54,"value":1523},"mqttx conn -h broker.emqx.io -p 1883 --save-options",{"type":49,"tag":1393,"props":1525,"children":1526},{},[1527,1532],{"type":49,"tag":1415,"props":1528,"children":1529},{},[1530],{"type":54,"value":1531},"mqttx conn --config /Users/mqttx-cli-config.json",{"type":49,"tag":1415,"props":1533,"children":1534},{},[1535],{"type":54,"value":1536},"mqttx conn --load-options /Users/mqttx-cli-options.json",{"type":49,"tag":50,"props":1538,"children":1539},{},[1540,1542,1548,1550,1556],{"type":54,"value":1541},"在此次更新中，我们将原来的 ",{"type":49,"tag":139,"props":1543,"children":1545},{"className":1544},[],[1546],{"type":54,"value":1547},"--config",{"type":54,"value":1549}," 参数更改为了 ",{"type":49,"tag":139,"props":1551,"children":1553},{"className":1552},[],[1554],{"type":54,"value":1555},"--options",{"type":54,"value":1557}," 参数。此变更更好地反映了这些参数的目的，即保存和加载常用的命令参数。",{"type":49,"tag":549,"props":1559,"children":1560},{},[1561,1578],{"type":49,"tag":553,"props":1562,"children":1563},{},[1564,1569,1571,1577],{"type":49,"tag":131,"props":1565,"children":1566},{},[1567],{"type":54,"value":1568},"-so, --save-options",{"type":54,"value":1570},"：将参数保存到本地配置文件，支持 JSON 和 YAML 格式。默认路径是 ",{"type":49,"tag":139,"props":1572,"children":1574},{"className":1573},[],[1575],{"type":54,"value":1576},"./mqttx-cli-options.json",{"type":54,"value":252},{"type":49,"tag":553,"props":1579,"children":1580},{},[1581,1586,1588,1593],{"type":49,"tag":131,"props":1582,"children":1583},{},[1584],{"type":54,"value":1585},"-lo, --load-options",{"type":54,"value":1587},"：从本地配置文件加载参数，支持 JSON 和 YAML 格式。默认路径是 ",{"type":49,"tag":139,"props":1589,"children":1591},{"className":1590},[],[1592],{"type":54,"value":1576},{"type":54,"value":252},{"type":49,"tag":82,"props":1595,"children":1597},{"id":1596},"其他更新",[1598],{"type":54,"value":1596},{"type":49,"tag":50,"props":1600,"children":1601},{},[1602],{"type":49,"tag":131,"props":1603,"children":1604},{},[1605],{"type":54,"value":1606},"新功能和改进",{"type":49,"tag":549,"props":1608,"children":1609},{},[1610,1620],{"type":49,"tag":553,"props":1611,"children":1612},{},[1613,1618],{"type":49,"tag":131,"props":1614,"children":1615},{},[1616],{"type":54,"value":1617},"自动重新订阅提示",{"type":54,"value":1619},"：订阅对话框现在增加了自动重新订阅提示。在进行订阅时，您可以看到是否启用了自动重新订阅功能。",{"type":49,"tag":553,"props":1621,"children":1622},{},[1623,1628],{"type":49,"tag":131,"props":1624,"children":1625},{},[1626],{"type":54,"value":1627},"GPT-4o 支持",{"type":54,"value":1629},"：在 MQTTX Copilot 中增加了对 GPT-4o 的支持，为您的 MQTTX 体验带来先进的 AI 能力。",{"type":49,"tag":50,"props":1631,"children":1632},{},[1633],{"type":49,"tag":131,"props":1634,"children":1635},{},[1636],{"type":54,"value":1637},"错误修复",{"type":49,"tag":549,"props":1639,"children":1640},{},[1641,1651,1661,1671,1681],{"type":49,"tag":553,"props":1642,"children":1643},{},[1644,1649],{"type":49,"tag":131,"props":1645,"children":1646},{},[1647],{"type":54,"value":1648},"版本更新对话框",{"type":54,"value":1650},"：修复了版本更新对话框，确保其适当适应暗黑模式，并在不同主题中提供一致的用户体验。",{"type":49,"tag":553,"props":1652,"children":1653},{},[1654,1659],{"type":49,"tag":131,"props":1655,"children":1656},{},[1657],{"type":54,"value":1658},"主题过滤",{"type":54,"value":1660},"：解决了主题过滤的问题，确保主题的准确和可靠过滤。",{"type":49,"tag":553,"props":1662,"children":1663},{},[1664,1669],{"type":49,"tag":131,"props":1665,"children":1666},{},[1667],{"type":54,"value":1668},"日志改进",{"type":54,"value":1670},"：增强了日志格式，并通过灰色显示输出元信息并改进了 bench sub 日志，使日志更易读，对于调试更有用。",{"type":49,"tag":553,"props":1672,"children":1673},{},[1674,1679],{"type":49,"tag":131,"props":1675,"children":1676},{},[1677],{"type":54,"value":1678},"订阅错误",{"type":54,"value":1680},"：修复了处理多主题时的订阅错误逻辑，确保更流畅和可靠的订阅。",{"type":49,"tag":553,"props":1682,"children":1683},{},[1684,1689],{"type":49,"tag":131,"props":1685,"children":1686},{},[1687],{"type":54,"value":1688},"CLI 发布失败处理",{"type":54,"value":1690},"：改进了 CLI 发布失败的重新连接逻辑，确保 CLI 更优雅地处理发布失败并尝试重新连接。",{"type":49,"tag":50,"props":1692,"children":1693},{},[1694],{"type":54,"value":1695},"这些更新着重于改善用户体验，增强功能，并修复关键错误，以确保 MQTTX 的更顺畅和可靠的操作。",{"type":49,"tag":82,"props":1697,"children":1699},{"id":1698},"未来规划",[1700],{"type":54,"value":1698},{"type":49,"tag":549,"props":1702,"children":1703},{},[1704,1767,1777,1787,1797,1807,1817,1836,1846],{"type":49,"tag":553,"props":1705,"children":1706},{},[1707,1712,1714],{"type":49,"tag":131,"props":1708,"children":1709},{},[1710],{"type":54,"value":1711},"Payload 图表可视化增强 - MQTTX Viewer",{"type":54,"value":1713},"：\n",{"type":49,"tag":549,"props":1715,"children":1716},{},[1717,1727,1737,1747,1757],{"type":49,"tag":553,"props":1718,"children":1719},{},[1720,1725],{"type":49,"tag":131,"props":1721,"children":1722},{},[1723],{"type":54,"value":1724},"主题树视图",{"type":54,"value":1726},"：增强主题的组织和可视化。",{"type":49,"tag":553,"props":1728,"children":1729},{},[1730,1735],{"type":49,"tag":131,"props":1731,"children":1732},{},[1733],{"type":54,"value":1734},"差异视图",{"type":54,"value":1736},"：轻松比较不同的消息或负载。",{"type":49,"tag":553,"props":1738,"children":1739},{},[1740,1745],{"type":49,"tag":131,"props":1741,"children":1742},{},[1743],{"type":54,"value":1744},"仪表板视图",{"type":54,"value":1746},"：提供可定制的 MQTT 活动概览，以获取个性化洞见。",{"type":49,"tag":553,"props":1748,"children":1749},{},[1750,1755],{"type":49,"tag":131,"props":1751,"children":1752},{},[1753],{"type":54,"value":1754},"JSON 视图",{"type":54,"value":1756},"：改进 JSON 格式数据的处理和显示。",{"type":49,"tag":553,"props":1758,"children":1759},{},[1760,1765],{"type":49,"tag":131,"props":1761,"children":1762},{},[1763],{"type":54,"value":1764},"系统主题视图",{"type":54,"value":1766},"：专门针对系统相关 MQTT 主题的视图。",{"type":49,"tag":553,"props":1768,"children":1769},{},[1770,1775],{"type":49,"tag":131,"props":1771,"children":1772},{},[1773],{"type":54,"value":1774},"支持可配置的断开连接属性（MQTT 5.0）",{"type":54,"value":1776},"：通过自定义断开连接设置来增强连接管理。",{"type":49,"tag":553,"props":1778,"children":1779},{},[1780,1785],{"type":49,"tag":131,"props":1781,"children":1782},{},[1783],{"type":54,"value":1784},"物联网场景数据模拟",{"type":54,"value":1786},"：将此功能带到桌面客户端，以简化物联网场景测试。",{"type":49,"tag":553,"props":1788,"children":1789},{},[1790,1795],{"type":49,"tag":131,"props":1791,"children":1792},{},[1793],{"type":54,"value":1794},"Sparkplug B 支持",{"type":54,"value":1796},"：扩展 MQTTX 功能，包括对 Sparkplug B 的特殊支持。",{"type":49,"tag":553,"props":1798,"children":1799},{},[1800,1805],{"type":49,"tag":131,"props":1801,"children":1802},{},[1803],{"type":54,"value":1804},"QoS 0 消息存储优化",{"type":54,"value":1806},"：提供可配置选项，减少存储空间使用。",{"type":49,"tag":553,"props":1808,"children":1809},{},[1810,1815],{"type":49,"tag":131,"props":1811,"children":1812},{},[1813],{"type":54,"value":1814},"MQTT GUI 调试功能",{"type":54,"value":1816},"：帮助调试 MQTT 通信的新功能。",{"type":49,"tag":553,"props":1818,"children":1819},{},[1820,1825,1827,1834],{"type":49,"tag":131,"props":1821,"children":1822},{},[1823],{"type":54,"value":1824},"插件功能",{"type":54,"value":1826},"：引入支持协议扩展（如 ",{"type":49,"tag":75,"props":1828,"children":1831},{"href":1829,"rel":1830,"target":112},"https://www.emqx.com/zh/blog/coap-protocol",[111,111],[1832],{"type":54,"value":1833},"CoAP",{"type":54,"value":1835}," 和 MQTT-SN）的插件系统。",{"type":49,"tag":553,"props":1837,"children":1838},{},[1839,1844],{"type":49,"tag":131,"props":1840,"children":1841},{},[1842],{"type":54,"value":1843},"Avro 消息格式支持",{"type":54,"value":1845},"：增加对 Avro 消息格式的编码和解码能力。",{"type":49,"tag":553,"props":1847,"children":1848},{},[1849,1854],{"type":49,"tag":131,"props":1850,"children":1851},{},[1852],{"type":54,"value":1853},"脚本测试自动化（流程）",{"type":54,"value":1855},"：简化自动化测试工作流的创建和管理。",{"title":42,"searchDepth":1857,"depth":1857,"links":1858},2,[1859,1866,1870,1873,1876,1877,1878],{"id":84,"depth":1857,"text":87,"children":1860},[1861,1863,1864,1865],{"id":96,"depth":1862,"text":96},3,{"id":324,"depth":1862,"text":324},{"id":383,"depth":1862,"text":383},{"id":464,"depth":1862,"text":464},{"id":904,"depth":1857,"text":907,"children":1867},[1868,1869],{"id":923,"depth":1862,"text":923},{"id":1150,"depth":1862,"text":1150},{"id":1213,"depth":1857,"text":1213,"children":1871},[1872],{"id":1223,"depth":1862,"text":1223},{"id":1351,"depth":1857,"text":1354,"children":1874},[1875],{"id":1357,"depth":1862,"text":1360},{"id":1484,"depth":1857,"text":1484},{"id":1596,"depth":1857,"text":1596},{"id":1698,"depth":1857,"text":1698},"markdown","content:blog:zh:mqttx-1-10-0-release-notes.md","content","blog/zh/mqttx-1-10-0-release-notes.md","md",{"loc":1885,"lastmod":30},"/zh/blog/mqttx-1-10-0-release-notes",[1887,1894,1901,1907,1914,1921,1928,1934,1941,1948,1955,1956,1963,1970,1977,1984,1991,1998,2005,2011,2018,2025,2032,2039,2046,2053,2059,2066,2073,2080,2086,2093,2100],{"slug":1888,"title":1889,"description":1890,"date":1891,"category":31,"cover":1892,"version":1893},"mqttx-1-13-2-released","MQTTX 1.13.2 发布：MQTTX Agent 与 Dashboard","MQTTX 1.13.2 通过 MQTTX Agent 自动执行 MQTT 测试、比对消息并排查问题，Dashboard 独立展示设备指标与趋势。","2026-10-26","/images/blog/mqttx-1-13-2-released.webp","1.13.2",{"slug":1895,"title":1896,"description":1897,"date":1898,"category":1899,"cover":1900,"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":1902,"title":1903,"description":1904,"date":1898,"category":31,"cover":1905,"version":1906},"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":1908,"title":1909,"description":1910,"date":1911,"category":31,"cover":1912,"version":1913},"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":1915,"title":1916,"description":1917,"date":1918,"category":31,"cover":1919,"version":1920},"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":1922,"title":1923,"description":1924,"date":1925,"category":31,"cover":1926,"version":1927},"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":1929,"title":1930,"description":1931,"date":1932,"category":1899,"cover":1933,"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":1935,"title":1936,"description":1937,"date":1938,"category":31,"cover":1939,"version":1940},"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":1942,"title":1943,"description":1944,"date":1945,"category":31,"cover":1946,"version":1947},"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":1949,"title":1950,"description":1951,"date":1952,"category":31,"cover":1953,"version":1954},"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":27,"title":28,"description":29,"date":30,"category":31,"cover":32,"version":33},{"slug":1957,"title":1958,"description":1959,"date":1960,"category":31,"cover":1961,"version":1962},"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":1964,"title":1965,"description":1966,"date":1967,"category":1968,"cover":1969,"version":-1},"how-to-publish-and-receive-protobuf-messages-within-mqtt","如何在 MQTT 中发布和接收 Protobuf 消息？","MQTTX 是一款开源的全功能 MQTT 客户端，支持从 JSON、Base64 到现如今的 Protobuf 的多种格式。我们将在本文中展示如何使用 MQTTX 来定义、发布和接收 Protobuf 消息。","2024-04-17","guides","https://assets.emqx.com/images/348e290abdede74446c634642b1bfcf7.png",{"slug":1971,"title":1972,"description":1973,"date":1974,"category":31,"cover":1975,"version":1976},"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":1978,"title":1979,"description":1980,"date":1981,"category":31,"cover":1982,"version":1983},"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":1985,"title":1986,"description":1987,"date":1988,"category":31,"cover":1989,"version":1990},"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":1992,"title":1993,"description":1994,"date":1995,"category":31,"cover":1996,"version":1997},"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":1999,"title":2000,"description":2001,"date":2002,"category":31,"cover":2003,"version":2004},"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":2006,"title":2007,"description":2008,"date":2009,"category":1968,"cover":2010,"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":2012,"title":2013,"description":2014,"date":2015,"category":31,"cover":2016,"version":2017},"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":2019,"title":2020,"description":2021,"date":2022,"category":31,"cover":2023,"version":2024},"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":2026,"title":2027,"description":2028,"date":2029,"category":31,"cover":2030,"version":2031},"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":2033,"title":2034,"description":2035,"date":2036,"category":31,"cover":2037,"version":2038},"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":2040,"title":2041,"description":2042,"date":2043,"category":31,"cover":2044,"version":2045},"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":2047,"title":2048,"description":2049,"date":2050,"category":31,"cover":2051,"version":2052},"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":2054,"title":2055,"description":2056,"date":2057,"category":1899,"cover":2058,"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":2060,"title":2061,"description":2062,"date":2063,"category":31,"cover":2064,"version":2065},"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":2067,"title":2068,"description":2069,"date":2070,"category":31,"cover":2071,"version":2072},"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":2074,"title":2075,"description":2076,"date":2077,"category":31,"cover":2078,"version":2079},"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":2081,"title":2082,"description":2083,"date":2084,"category":1968,"cover":2085,"version":-1},"mqttx-script-function-tutorial","MQTTX 脚本功能使用教程","MQTT X 在 v1.4.2 版本后加入了脚本功能，用户可使用脚本对 Payload 进行自定义转换，本文将通过两个简单的实例来介绍脚本功能的使用。","2021-02-23","https://assets.emqx.com/images/d9b2744f485887c9fae26133ed2e4b14.png",{"slug":2087,"title":2088,"description":2089,"date":2090,"category":31,"cover":2091,"version":2092},"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":2094,"title":2095,"description":2096,"date":2097,"category":31,"cover":2098,"version":2099},"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":2101,"title":2102,"description":2103,"date":2104,"category":31,"cover":2105,"version":2106},"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",1793585625684]