[{"data":1,"prerenderedAt":2159},["Reactive",2],{"VEb9Nnn1YX":3,"blog-post-en-mqttx-1-10-0-release-notes":26,"blog-posts-en":1939},{"items":4,"meta":23},[5,8,11,14,17,20],{"title":6,"titleUrl":7},"MQTT Topics and Wildcards: A Beginner's Guide","advanced-features-of-mqtt-topics",{"title":9,"titleUrl":10},"MQTT on ESP32: A Beginner's Guide","esp32-connects-to-the-free-public-mqtt-broker",{"title":12,"titleUrl":13},"MQTT QoS 0, 1, 2 Explained: A Quickstart Guide","introduction-to-mqtt-qos",{"title":15,"titleUrl":16},"MQTT in Python with Paho Client: Beginner's Guide 2026","how-to-use-mqtt-in-python",{"title":18,"titleUrl":19},"MQTT Broker: How It Works, Popular Options, and Quickstart","the-ultimate-guide-to-mqtt-broker-comparison",{"title":21,"titleUrl":22},"CAN Bus Uncovered: Basics and Applications in Vehicles","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 Released: Advanced File Management and Configuration in CLI","This release significantly enhances file management and configuration capabilities, particularly in the CLI version.","2024-06-17","release-notes","https://assets.emqx.com/images/fd939c89609cdc8af6cdc93346ce58da.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":1932,"_id":1933,"_source":1934,"_file":1935,"_extension":1936,"readingTime":37,"sitemap":1937},"/blog/en/mqttx-1-10-0-release-notes","en",false,"","2024-06-17T00:00:00.000Z",[35,36],{"type":46,"children":47,"toc":1908},"root",[48,56,61,83,90,95,102,130,153,158,167,180,199,218,226,247,252,260,265,273,293,301,314,320,325,333,352,365,373,379,384,392,404,409,417,446,468,474,487,495,536,548,553,893,898,906,912,924,930,935,943,977,985,1037,1042,1074,1086,1104,1112,1125,1133,1141,1149,1155,1166,1205,1210,1216,1221,1227,1232,1296,1301,1309,1319,1325,1330,1335,1343,1350,1355,1361,1367,1388,1390,1492,1497,1506,1508,1556,1577,1613,1619,1627,1650,1658,1711,1716,1722],{"type":49,"tag":50,"props":51,"children":52},"element","p",{},[53],{"type":54,"value":55},"text","MQTTX 1.10.0 is now available!",{"type":49,"tag":50,"props":57,"children":58},{},[59],{"type":54,"value":60},"This release significantly enhances file management and configuration capabilities, particularly in the CLI version. Key updates include support for reading and writing messages to files, advanced configuration options, text output mode, and improved logging. Additionally, the desktop version now supports database rebuilding to prevent issues with corrupted files and better handle large data for display. These aim to provide a more robust and user-friendly experience for all MQTTX users.",{"type":49,"tag":62,"props":63,"children":64},"blockquote",{},[65],{"type":49,"tag":50,"props":66,"children":67},{},[68,74,76],{"type":49,"tag":69,"props":70,"children":71},"em",{},[72],{"type":54,"value":73},"Download the latest version here:",{"type":54,"value":75}," ",{"type":49,"tag":77,"props":78,"children":80},"a",{"href":79},"/downloads",[81],{"type":54,"value":82},"https://mqttx.app/downloads",{"type":49,"tag":84,"props":85,"children":87},"h2",{"id":86},"file-management-in-cli",[88],{"type":54,"value":89},"File Management in CLI",{"type":49,"tag":50,"props":91,"children":92},{},[93],{"type":54,"value":94},"MQTTX 1.10.0 introduces robust file read and write capabilities to the CLI. It seamlessly handles message payloads as file inputs and outputs over MQTT, facilitating integration and automation in data workflows.",{"type":49,"tag":96,"props":97,"children":99},"h3",{"id":98},"file-reading",[100],{"type":54,"value":101},"File Reading",{"type":49,"tag":62,"props":103,"children":104},{},[105],{"type":49,"tag":50,"props":106,"children":107},{},[108,110,119,121,128],{"type":54,"value":109},"Note: Due to ",{"type":49,"tag":77,"props":111,"children":116},{"href":112,"rel":113,"target":115},"https://www.emqx.com/en/blog/the-easiest-guide-to-getting-started-with-mqtt",[114,114],"noopener","_blank",[117],{"type":54,"value":118},"MQTT protocol",{"type":54,"value":120}," constraints, payload size must not exceed 256MB. Verify your ",{"type":49,"tag":77,"props":122,"children":125},{"href":123,"rel":124,"target":115},"https://www.emqx.com/en/blog/the-ultimate-guide-to-mqtt-broker-comparison",[114,114],[126],{"type":54,"value":127},"MQTT broker",{"type":54,"value":129},"'s payload size limit before transmitting.",{"type":49,"tag":50,"props":131,"children":132},{},[133,139,140,147,148],{"type":49,"tag":134,"props":135,"children":136},"strong",{},[137],{"type":54,"value":138},"Using the",{"type":54,"value":75},{"type":49,"tag":141,"props":142,"children":144},"code",{"className":143},[],[145],{"type":54,"value":146},"pub",{"type":54,"value":75},{"type":49,"tag":134,"props":149,"children":150},{},[151],{"type":54,"value":152},"Command",{"type":49,"tag":50,"props":154,"children":155},{},[156],{"type":54,"value":157},"Use the following command to read a message from a file:",{"type":49,"tag":159,"props":160,"children":162},"pre",{"code":161},"mqttx pub -t topic --file-read path/to/file\n",[163],{"type":49,"tag":141,"props":164,"children":165},{"__ignoreMap":42},[166],{"type":54,"value":161},{"type":49,"tag":50,"props":168,"children":169},{},[170,172,178],{"type":54,"value":171},"The ",{"type":49,"tag":141,"props":173,"children":175},{"className":174},[],[176],{"type":54,"value":177},"--file-read",{"type":54,"value":179}," option allows you to read content directly from a file as the payload for publishing. This is convenient for using predefined test data for various publishing scenarios.",{"type":49,"tag":50,"props":181,"children":182},{},[183,187,188,194,195],{"type":49,"tag":134,"props":184,"children":185},{},[186],{"type":54,"value":138},{"type":54,"value":75},{"type":49,"tag":141,"props":189,"children":191},{"className":190},[],[192],{"type":54,"value":193},"bench pub",{"type":54,"value":75},{"type":49,"tag":134,"props":196,"children":197},{},[198],{"type":54,"value":152},{"type":49,"tag":50,"props":200,"children":201},{},[202,204,209,211,216],{"type":54,"value":203},"The command ",{"type":49,"tag":141,"props":205,"children":207},{"className":206},[],[208],{"type":54,"value":177},{"type":54,"value":210}," reads the message body from a file, similar to the simple ",{"type":49,"tag":141,"props":212,"children":214},{"className":213},[],[215],{"type":54,"value":146},{"type":54,"value":217}," command:",{"type":49,"tag":159,"props":219,"children":221},{"code":220},"mqttx bench pub -c 10 -t topic --file-read path/to/file\n",[222],{"type":49,"tag":141,"props":223,"children":224},{"__ignoreMap":42},[225],{"type":54,"value":220},{"type":49,"tag":50,"props":227,"children":228},{},[229,231,237,239,245],{"type":54,"value":230},"Leveraging the capabilities of the bench command, you can split the input message into a single file using the ",{"type":49,"tag":141,"props":232,"children":234},{"className":233},[],[235],{"type":54,"value":236},"--split",{"type":54,"value":238}," option to send different data segments. By default, the character is ",{"type":49,"tag":141,"props":240,"children":242},{"className":241},[],[243],{"type":54,"value":244},"\\n",{"type":54,"value":246},".",{"type":49,"tag":50,"props":248,"children":249},{},[250],{"type":54,"value":251},"For example, with a file containing:",{"type":49,"tag":159,"props":253,"children":255},{"code":254},"hello world\n",[256],{"type":49,"tag":141,"props":257,"children":258},{"__ignoreMap":42},[259],{"type":54,"value":254},{"type":49,"tag":50,"props":261,"children":262},{},[263],{"type":54,"value":264},"You can use:",{"type":49,"tag":159,"props":266,"children":268},{"code":267},"mqttx bench pub -c 10 -t topic --file-read path/to/file --split\n",[269],{"type":49,"tag":141,"props":270,"children":271},{"__ignoreMap":42},[272],{"type":54,"value":267},{"type":49,"tag":50,"props":274,"children":275},{},[276,278,283,285,291],{"type":54,"value":277},"If the file is comma-separated, change ",{"type":49,"tag":141,"props":279,"children":281},{"className":280},[],[282],{"type":54,"value":236},{"type":54,"value":284}," to ",{"type":49,"tag":141,"props":286,"children":288},{"className":287},[],[289],{"type":54,"value":290},",",{"type":54,"value":292},":",{"type":49,"tag":159,"props":294,"children":296},{"code":295},"mqttx bench pub -c 10 -t topic --file-read path/to/file --split ','\n",[297],{"type":49,"tag":141,"props":298,"children":299},{"__ignoreMap":42},[300],{"type":54,"value":295},{"type":49,"tag":50,"props":302,"children":303},{},[304,306,312],{"type":54,"value":305},"You can also set ",{"type":49,"tag":141,"props":307,"children":309},{"className":308},[],[310],{"type":54,"value":311},"-im",{"type":54,"value":313}," to define the interval for publishing messages.",{"type":49,"tag":96,"props":315,"children":317},{"id":316},"file-writing",[318],{"type":54,"value":319},"File Writing",{"type":49,"tag":50,"props":321,"children":322},{},[323],{"type":54,"value":324},"To write incoming messages to a file, use:",{"type":49,"tag":159,"props":326,"children":328},{"code":327},"mqttx sub -t topic --file-write path/to/file\n",[329],{"type":49,"tag":141,"props":330,"children":331},{"__ignoreMap":42},[332],{"type":54,"value":327},{"type":49,"tag":50,"props":334,"children":335},{},[336,337,343,345,350],{"type":54,"value":171},{"type":49,"tag":141,"props":338,"children":340},{"className":339},[],[341],{"type":54,"value":342},"--file-write",{"type":54,"value":344}," option appends each message to a file, separated by a newline character ",{"type":49,"tag":141,"props":346,"children":348},{"className":347},[],[349],{"type":54,"value":244},{"type":54,"value":351}," by default, making it ideal for logging or accumulating text data. This feature is handy for applications that want to maintain a continuous log of received messages.",{"type":49,"tag":50,"props":353,"children":354},{},[355,357,363],{"type":54,"value":356},"To change the delimiter, use the ",{"type":49,"tag":141,"props":358,"children":360},{"className":359},[],[361],{"type":54,"value":362},"--delimiter",{"type":54,"value":364}," option. For example:",{"type":49,"tag":159,"props":366,"children":368},{"code":367},"mqttx sub -t topic --file-write path/to/file --delimiter ','\n",[369],{"type":49,"tag":141,"props":370,"children":371},{"__ignoreMap":42},[372],{"type":54,"value":367},{"type":49,"tag":96,"props":374,"children":376},{"id":375},"file-saving",[377],{"type":54,"value":378},"File Saving",{"type":49,"tag":50,"props":380,"children":381},{},[382],{"type":54,"value":383},"For saving messages as separate files, use:",{"type":49,"tag":159,"props":385,"children":387},{"code":386},"mqttx sub -t topic --file-save path/to/file\n",[388],{"type":49,"tag":141,"props":389,"children":390},{"__ignoreMap":42},[391],{"type":54,"value":386},{"type":49,"tag":50,"props":393,"children":394},{},[395,396,402],{"type":54,"value":171},{"type":49,"tag":141,"props":397,"children":399},{"className":398},[],[400],{"type":54,"value":401},"--file-save",{"type":54,"value":403}," option saves each incoming message as a separate file. Existing files will be automatically renumbered and saved to prevent overwrites. This feature is handy for applications that require storing individual messages for further processing or analysis.",{"type":49,"tag":50,"props":405,"children":406},{},[407],{"type":54,"value":408},"For example, to save incoming messages to a specified directory:",{"type":49,"tag":159,"props":410,"children":412},{"code":411},"mqttx sub -t topic --file-save /path/to/directory/message.txt\n",[413],{"type":49,"tag":141,"props":414,"children":415},{"__ignoreMap":42},[416],{"type":54,"value":411},{"type":49,"tag":50,"props":418,"children":419},{},[420,422,428,430,436,438,444],{"type":54,"value":421},"If ",{"type":49,"tag":141,"props":423,"children":425},{"className":424},[],[426],{"type":54,"value":427},"/path/to/directory/message.txt",{"type":54,"value":429}," already exists, new messages will be saved as ",{"type":49,"tag":141,"props":431,"children":433},{"className":432},[],[434],{"type":54,"value":435},"message(1).txt",{"type":54,"value":437},", ",{"type":49,"tag":141,"props":439,"children":441},{"className":440},[],[442],{"type":54,"value":443},"message(2).txt",{"type":54,"value":445},", and so on. This prevents any data loss due to overwriting existing files.",{"type":49,"tag":62,"props":447,"children":448},{},[449],{"type":49,"tag":50,"props":450,"children":451},{},[452,454,459,461,466],{"type":54,"value":453},"Do not use ",{"type":49,"tag":141,"props":455,"children":457},{"className":456},[],[458],{"type":54,"value":342},{"type":54,"value":460}," and ",{"type":49,"tag":141,"props":462,"children":464},{"className":463},[],[465],{"type":54,"value":401},{"type":54,"value":467}," together.",{"type":49,"tag":96,"props":469,"children":471},{"id":470},"type-format",[472],{"type":54,"value":473},"Type Format",{"type":49,"tag":50,"props":475,"children":476},{},[477,479,485],{"type":54,"value":478},"Specify the file format for sending or saving. If not specified, it defaults to plaintext (UTF-8) format. The file content can also be formatted using the ",{"type":49,"tag":141,"props":480,"children":482},{"className":481},[],[483],{"type":54,"value":484},"--format",{"type":54,"value":486}," option to handle different data formats:",{"type":49,"tag":159,"props":488,"children":490},{"code":489},"mqttx pub -t topic --file-read path/to/file --format type mqttx sub -t topic --file-save path/to/file --format type\n",[491],{"type":49,"tag":141,"props":492,"children":493},{"__ignoreMap":42},[494],{"type":54,"value":489},{"type":49,"tag":50,"props":496,"children":497},{},[498,500,506,507,513,514,520,521,527,529,535],{"type":54,"value":499},"Supported data formats for output to file include ",{"type":49,"tag":141,"props":501,"children":503},{"className":502},[],[504],{"type":54,"value":505},"json",{"type":54,"value":437},{"type":49,"tag":141,"props":508,"children":510},{"className":509},[],[511],{"type":54,"value":512},"base64",{"type":54,"value":437},{"type":49,"tag":141,"props":515,"children":517},{"className":516},[],[518],{"type":54,"value":519},"hex",{"type":54,"value":437},{"type":49,"tag":141,"props":522,"children":524},{"className":523},[],[525],{"type":54,"value":526},"binary",{"type":54,"value":528},", and ",{"type":49,"tag":141,"props":530,"children":532},{"className":531},[],[533],{"type":54,"value":534},"cbor",{"type":54,"value":246},{"type":49,"tag":50,"props":537,"children":538},{},[539,541,546],{"type":54,"value":540},"This version also introduces a ",{"type":49,"tag":141,"props":542,"children":544},{"className":543},[],[545],{"type":54,"value":526},{"type":54,"value":547}," format to handle more common scenarios. MQTTX will generate the corresponding binary file based on the format by specifying binary.",{"type":49,"tag":50,"props":549,"children":550},{},[551],{"type":54,"value":552},"If a file has the following extensions, it will automatically recognize the file format as binary:",{"type":49,"tag":554,"props":555,"children":556},"ul",{},[557,622,686,750,814,871],{"type":49,"tag":558,"props":559,"children":560},"li",{},[561,566,567,573,574,580,581,587,588,594,595,601,602,608,609,615,616],{"type":49,"tag":134,"props":562,"children":563},{},[564],{"type":54,"value":565},"Image:",{"type":54,"value":75},{"type":49,"tag":141,"props":568,"children":570},{"className":569},[],[571],{"type":54,"value":572},".png",{"type":54,"value":437},{"type":49,"tag":141,"props":575,"children":577},{"className":576},[],[578],{"type":54,"value":579},".jpg",{"type":54,"value":437},{"type":49,"tag":141,"props":582,"children":584},{"className":583},[],[585],{"type":54,"value":586},".jpeg",{"type":54,"value":437},{"type":49,"tag":141,"props":589,"children":591},{"className":590},[],[592],{"type":54,"value":593},".gif",{"type":54,"value":437},{"type":49,"tag":141,"props":596,"children":598},{"className":597},[],[599],{"type":54,"value":600},".bmp",{"type":54,"value":437},{"type":49,"tag":141,"props":603,"children":605},{"className":604},[],[606],{"type":54,"value":607},".ico",{"type":54,"value":437},{"type":49,"tag":141,"props":610,"children":612},{"className":611},[],[613],{"type":54,"value":614},".tif",{"type":54,"value":437},{"type":49,"tag":141,"props":617,"children":619},{"className":618},[],[620],{"type":54,"value":621},".tiff",{"type":49,"tag":558,"props":623,"children":624},{},[625,630,631,637,638,644,645,651,652,658,659,665,666,672,673,679,680],{"type":49,"tag":134,"props":626,"children":627},{},[628],{"type":54,"value":629},"Video:",{"type":54,"value":75},{"type":49,"tag":141,"props":632,"children":634},{"className":633},[],[635],{"type":54,"value":636},".mp4",{"type":54,"value":437},{"type":49,"tag":141,"props":639,"children":641},{"className":640},[],[642],{"type":54,"value":643},".avi",{"type":54,"value":437},{"type":49,"tag":141,"props":646,"children":648},{"className":647},[],[649],{"type":54,"value":650},".mov",{"type":54,"value":437},{"type":49,"tag":141,"props":653,"children":655},{"className":654},[],[656],{"type":54,"value":657},".mkv",{"type":54,"value":437},{"type":49,"tag":141,"props":660,"children":662},{"className":661},[],[663],{"type":54,"value":664},".flv",{"type":54,"value":437},{"type":49,"tag":141,"props":667,"children":669},{"className":668},[],[670],{"type":54,"value":671},".wmv",{"type":54,"value":437},{"type":49,"tag":141,"props":674,"children":676},{"className":675},[],[677],{"type":54,"value":678},".mpeg",{"type":54,"value":437},{"type":49,"tag":141,"props":681,"children":683},{"className":682},[],[684],{"type":54,"value":685},".3gp",{"type":49,"tag":558,"props":687,"children":688},{},[689,694,695,701,702,708,709,715,716,722,723,729,730,736,737,743,744],{"type":49,"tag":134,"props":690,"children":691},{},[692],{"type":54,"value":693},"Audio:",{"type":54,"value":75},{"type":49,"tag":141,"props":696,"children":698},{"className":697},[],[699],{"type":54,"value":700},".mp3",{"type":54,"value":437},{"type":49,"tag":141,"props":703,"children":705},{"className":704},[],[706],{"type":54,"value":707},".wav",{"type":54,"value":437},{"type":49,"tag":141,"props":710,"children":712},{"className":711},[],[713],{"type":54,"value":714},".flac",{"type":54,"value":437},{"type":49,"tag":141,"props":717,"children":719},{"className":718},[],[720],{"type":54,"value":721},".aac",{"type":54,"value":437},{"type":49,"tag":141,"props":724,"children":726},{"className":725},[],[727],{"type":54,"value":728},".ogg",{"type":54,"value":437},{"type":49,"tag":141,"props":731,"children":733},{"className":732},[],[734],{"type":54,"value":735},".wma",{"type":54,"value":437},{"type":49,"tag":141,"props":738,"children":740},{"className":739},[],[741],{"type":54,"value":742},".m4a",{"type":54,"value":437},{"type":49,"tag":141,"props":745,"children":747},{"className":746},[],[748],{"type":54,"value":749},".m4p",{"type":49,"tag":558,"props":751,"children":752},{},[753,758,759,765,766,772,773,779,780,786,787,793,794,800,801,807,808],{"type":49,"tag":134,"props":754,"children":755},{},[756],{"type":54,"value":757},"Compressed:",{"type":54,"value":75},{"type":49,"tag":141,"props":760,"children":762},{"className":761},[],[763],{"type":54,"value":764},".zip",{"type":54,"value":437},{"type":49,"tag":141,"props":767,"children":769},{"className":768},[],[770],{"type":54,"value":771},".gz",{"type":54,"value":437},{"type":49,"tag":141,"props":774,"children":776},{"className":775},[],[777],{"type":54,"value":778},".rar",{"type":54,"value":437},{"type":49,"tag":141,"props":781,"children":783},{"className":782},[],[784],{"type":54,"value":785},".tar",{"type":54,"value":437},{"type":49,"tag":141,"props":788,"children":790},{"className":789},[],[791],{"type":54,"value":792},".7z",{"type":54,"value":437},{"type":49,"tag":141,"props":795,"children":797},{"className":796},[],[798],{"type":54,"value":799},".bz2",{"type":54,"value":437},{"type":49,"tag":141,"props":802,"children":804},{"className":803},[],[805],{"type":54,"value":806},".xz",{"type":54,"value":437},{"type":49,"tag":141,"props":809,"children":811},{"className":810},[],[812],{"type":54,"value":813},".jar",{"type":49,"tag":558,"props":815,"children":816},{},[817,822,823,829,830,836,837,843,844,850,851,857,858,864,865],{"type":49,"tag":134,"props":818,"children":819},{},[820],{"type":54,"value":821},"Binary:",{"type":54,"value":75},{"type":49,"tag":141,"props":824,"children":826},{"className":825},[],[827],{"type":54,"value":828},".bin",{"type":54,"value":437},{"type":49,"tag":141,"props":831,"children":833},{"className":832},[],[834],{"type":54,"value":835},".exe",{"type":54,"value":437},{"type":49,"tag":141,"props":838,"children":840},{"className":839},[],[841],{"type":54,"value":842},".dll",{"type":54,"value":437},{"type":49,"tag":141,"props":845,"children":847},{"className":846},[],[848],{"type":54,"value":849},".so",{"type":54,"value":437},{"type":49,"tag":141,"props":852,"children":854},{"className":853},[],[855],{"type":54,"value":856},".dmg",{"type":54,"value":437},{"type":49,"tag":141,"props":859,"children":861},{"className":860},[],[862],{"type":54,"value":863},".iso",{"type":54,"value":437},{"type":49,"tag":141,"props":866,"children":868},{"className":867},[],[869],{"type":54,"value":870},".img",{"type":49,"tag":558,"props":872,"children":873},{},[874,879,880,886,887],{"type":49,"tag":134,"props":875,"children":876},{},[877],{"type":54,"value":878},"Document:",{"type":54,"value":75},{"type":49,"tag":141,"props":881,"children":883},{"className":882},[],[884],{"type":54,"value":885},".pdf",{"type":54,"value":437},{"type":49,"tag":141,"props":888,"children":890},{"className":889},[],[891],{"type":54,"value":892},".epub",{"type":49,"tag":50,"props":894,"children":895},{},[896],{"type":54,"value":897},"To manually specify the binary format, use:",{"type":49,"tag":159,"props":899,"children":901},{"code":900},"mqttx pub -t topic --file-read path/to/file --format binary\nmqttx sub -t topic --file-save path/to/file --format binary\n",[902],{"type":49,"tag":141,"props":903,"children":904},{"__ignoreMap":42},[905],{"type":54,"value":900},{"type":49,"tag":84,"props":907,"children":909},{"id":908},"configuration-file-in-cli",[910],{"type":54,"value":911},"Configuration File in CLI",{"type":49,"tag":50,"props":913,"children":914},{},[915,917,923],{"type":54,"value":916},"This version introduces a configuration file feature that stores default values for various settings, providing a simplified and customizable experience for MQTTX CLI. After initialization, the configuration file will be stored in the user's home directory at ",{"type":49,"tag":141,"props":918,"children":920},{"className":919},[],[921],{"type":54,"value":922},"$HOME/.mqttx-cli/config",{"type":54,"value":246},{"type":49,"tag":96,"props":925,"children":927},{"id":926},"features",[928],{"type":54,"value":929},"Features",{"type":49,"tag":50,"props":931,"children":932},{},[933],{"type":54,"value":934},"The configuration file includes settings for controlling the interface and functional parameters. These settings allow MQTTX CLI to use predefined values, improving efficiency and avoiding the need to enter information repeatedly.",{"type":49,"tag":50,"props":936,"children":937},{},[938],{"type":49,"tag":134,"props":939,"children":940},{},[941],{"type":54,"value":942},"Default:",{"type":49,"tag":554,"props":944,"children":945},{},[946],{"type":49,"tag":558,"props":947,"children":948},{},[949,954],{"type":49,"tag":134,"props":950,"children":951},{},[952],{"type":54,"value":953},"output",{"type":49,"tag":554,"props":955,"children":956},{},[957,967],{"type":49,"tag":558,"props":958,"children":959},{},[960,965],{"type":49,"tag":134,"props":961,"children":962},{},[963],{"type":54,"value":964},"text:",{"type":54,"value":966}," Default mode provides concise output with crucial information.",{"type":49,"tag":558,"props":968,"children":969},{},[970,975],{"type":49,"tag":134,"props":971,"children":972},{},[973],{"type":54,"value":974},"log:",{"type":54,"value":976}," Displays detailed log output with date and time stamps.",{"type":49,"tag":50,"props":978,"children":979},{},[980],{"type":49,"tag":134,"props":981,"children":982},{},[983],{"type":54,"value":984},"MQTT:",{"type":49,"tag":554,"props":986,"children":987},{},[988,998,1008,1018,1028],{"type":49,"tag":558,"props":989,"children":990},{},[991,996],{"type":49,"tag":134,"props":992,"children":993},{},[994],{"type":54,"value":995},"host:",{"type":54,"value":997}," Default is localhost.",{"type":49,"tag":558,"props":999,"children":1000},{},[1001,1006],{"type":49,"tag":134,"props":1002,"children":1003},{},[1004],{"type":54,"value":1005},"port:",{"type":54,"value":1007}," Default is 1883.",{"type":49,"tag":558,"props":1009,"children":1010},{},[1011,1016],{"type":49,"tag":134,"props":1012,"children":1013},{},[1014],{"type":54,"value":1015},"max_reconnect_times:",{"type":54,"value":1017}," Default is 10.",{"type":49,"tag":558,"props":1019,"children":1020},{},[1021,1026],{"type":49,"tag":134,"props":1022,"children":1023},{},[1024],{"type":54,"value":1025},"username:",{"type":54,"value":1027}," Default is empty.",{"type":49,"tag":558,"props":1029,"children":1030},{},[1031,1036],{"type":49,"tag":134,"props":1032,"children":1033},{},[1034],{"type":54,"value":1035},"password:",{"type":54,"value":1027},{"type":49,"tag":50,"props":1038,"children":1039},{},[1040],{"type":54,"value":1041},"The output setting in the default section controls the CLI output display. Users can choose different modes according to their needs.",{"type":49,"tag":50,"props":1043,"children":1044},{},[1045,1047,1053,1054,1060,1061,1067,1068],{"type":54,"value":1046},"If the command line does not provide these parameters, MQTTX CLI will use the values from the configuration file in the mqtt section. ",{"type":49,"tag":141,"props":1048,"children":1050},{"className":1049},[],[1051],{"type":54,"value":1052},"host",{"type":54,"value":437},{"type":49,"tag":141,"props":1055,"children":1057},{"className":1056},[],[1058],{"type":54,"value":1059},"port",{"type":54,"value":437},{"type":49,"tag":141,"props":1062,"children":1064},{"className":1063},[],[1065],{"type":54,"value":1066},"username",{"type":54,"value":528},{"type":49,"tag":141,"props":1069,"children":1071},{"className":1070},[],[1072],{"type":54,"value":1073},"password",{"type":49,"tag":50,"props":1075,"children":1076},{},[1077,1078,1084],{"type":54,"value":171},{"type":49,"tag":141,"props":1079,"children":1081},{"className":1080},[],[1082],{"type":54,"value":1083},"max_reconnect_times",{"type":54,"value":1085}," controls the number of reconnection attempts. The connection will automatically close once this set number is reached to prevent infinite reconnections.",{"type":49,"tag":50,"props":1087,"children":1088},{},[1089,1091,1096,1097,1102],{"type":54,"value":1090},"If configuration items like ",{"type":49,"tag":141,"props":1092,"children":1094},{"className":1093},[],[1095],{"type":54,"value":1066},{"type":54,"value":460},{"type":49,"tag":141,"props":1098,"children":1100},{"className":1099},[],[1101],{"type":54,"value":1073},{"type":54,"value":1103}," are not required, they can be omitted from the configuration file.",{"type":49,"tag":50,"props":1105,"children":1106},{},[1107],{"type":49,"tag":134,"props":1108,"children":1109},{},[1110],{"type":54,"value":1111},"Initializing Configuration",{"type":49,"tag":50,"props":1113,"children":1114},{},[1115,1117,1123],{"type":54,"value":1116},"The configuration file is not provided by default. To create or update the configuration file, run the ",{"type":49,"tag":141,"props":1118,"children":1120},{"className":1119},[],[1121],{"type":54,"value":1122},"init",{"type":54,"value":1124}," command. This will prompt you to enter the desired values:",{"type":49,"tag":159,"props":1126,"children":1128},{"code":1127},"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",[1129],{"type":49,"tag":141,"props":1130,"children":1131},{"__ignoreMap":42},[1132],{"type":54,"value":1127},{"type":49,"tag":50,"props":1134,"children":1135},{},[1136],{"type":49,"tag":134,"props":1137,"children":1138},{},[1139],{"type":54,"value":1140},"Example Configuration File",{"type":49,"tag":159,"props":1142,"children":1144},{"code":1143},"[default]\noutput = text\n[mqtt]\nhost = broker.emqx.io\nport = 1883\nmax_reconnect_times = 5\nusername = admin\npassword = public\n",[1145],{"type":49,"tag":141,"props":1146,"children":1147},{"__ignoreMap":42},[1148],{"type":54,"value":1143},{"type":49,"tag":96,"props":1150,"children":1152},{"id":1151},"interface-improvements",[1153],{"type":54,"value":1154},"Interface Improvements",{"type":49,"tag":50,"props":1156,"children":1157},{},[1158,1159,1164],{"type":54,"value":171},{"type":49,"tag":141,"props":1160,"children":1162},{"className":1161},[],[1163],{"type":54,"value":953},{"type":54,"value":1165}," setting in the configuration file offers two modes:",{"type":49,"tag":554,"props":1167,"children":1168},{},[1169,1187],{"type":49,"tag":558,"props":1170,"children":1171},{},[1172,1177,1179],{"type":49,"tag":134,"props":1173,"children":1174},{},[1175],{"type":54,"value":1176},"Text Mode:",{"type":54,"value":1178}," Provides a concise and clean output with only the critical information, making it easier to read and understand.",{"type":49,"tag":159,"props":1180,"children":1182},{"code":1181},"mqttx conn\n✔ Connected\n",[1183],{"type":49,"tag":141,"props":1184,"children":1185},{"__ignoreMap":42},[1186],{"type":54,"value":1181},{"type":49,"tag":558,"props":1188,"children":1189},{},[1190,1195,1197],{"type":49,"tag":134,"props":1191,"children":1192},{},[1193],{"type":54,"value":1194},"Log Mode:",{"type":54,"value":1196}," This mode displays detailed log output with date and time stamps, which is helpful for recording and debugging.",{"type":49,"tag":159,"props":1198,"children":1200},{"code":1199},"mqttx conn\n[5/24/2024] [11:26:17 AM] › …  Connecting...\n[5/24/2024] [11:26:17 AM] › ✔  Connected\n",[1201],{"type":49,"tag":141,"props":1202,"children":1203},{"__ignoreMap":42},[1204],{"type":54,"value":1199},{"type":49,"tag":50,"props":1206,"children":1207},{},[1208],{"type":54,"value":1209},"Users can tailor the MQTTX CLI to better fit their workflow and preferences by selecting the appropriate output mode.",{"type":49,"tag":84,"props":1211,"children":1213},{"id":1212},"desktop-white-screen-issue",[1214],{"type":54,"value":1215},"Desktop White Screen Issue",{"type":49,"tag":50,"props":1217,"children":1218},{},[1219],{"type":54,"value":1220},"We have investigated reports of white screen issues in the Desktop version and identified two primary causes: corrupted database files and performance issues when rendering large message payloads. We have optimized MQTTX to address these problems.",{"type":49,"tag":96,"props":1222,"children":1224},{"id":1223},"database-rebuild",[1225],{"type":54,"value":1226},"Database Rebuild",{"type":49,"tag":50,"props":1228,"children":1229},{},[1230],{"type":54,"value":1231},"Corrupted SQLite database files can result from several factors, particularly after a software upgrade:",{"type":49,"tag":1233,"props":1234,"children":1235},"ol",{},[1236,1246,1256,1266,1276,1286],{"type":49,"tag":558,"props":1237,"children":1238},{},[1239,1244],{"type":49,"tag":134,"props":1240,"children":1241},{},[1242],{"type":54,"value":1243},"Incompatible Architectural Changes:",{"type":54,"value":1245}," Upgrades that alter the database structure without properly migrating old data.",{"type":49,"tag":558,"props":1247,"children":1248},{},[1249,1254],{"type":49,"tag":134,"props":1250,"children":1251},{},[1252],{"type":54,"value":1253},"Interrupted Upgrades:",{"type":54,"value":1255}," Unexpected interruptions during software updates lead to incomplete database files.",{"type":49,"tag":558,"props":1257,"children":1258},{},[1259,1264],{"type":49,"tag":134,"props":1260,"children":1261},{},[1262],{"type":54,"value":1263},"Race Conditions:",{"type":54,"value":1265}," Concurrent access is not managed correctly, causing write conflicts.",{"type":49,"tag":558,"props":1267,"children":1268},{},[1269,1274],{"type":49,"tag":134,"props":1270,"children":1271},{},[1272],{"type":54,"value":1273},"Faulty Upgrade Scripts:",{"type":54,"value":1275}," Errors in database script execution during updates affect data integrity.",{"type":49,"tag":558,"props":1277,"children":1278},{},[1279,1284],{"type":49,"tag":134,"props":1280,"children":1281},{},[1282],{"type":54,"value":1283},"Insufficient Disk Space:",{"type":54,"value":1285}," The lack of space during updates prevents complete data writes.",{"type":49,"tag":558,"props":1287,"children":1288},{},[1289,1294],{"type":49,"tag":134,"props":1290,"children":1291},{},[1292],{"type":54,"value":1293},"File System or Hardware Issues:",{"type":54,"value":1295}," Underlying storage problems causing file corruption.",{"type":49,"tag":50,"props":1297,"children":1298},{},[1299],{"type":54,"value":1300},"When such issues occur, users are unable to open MQTTX. The new version of MQTTX will display a database rebuild page when it detects a corrupted database. Users can click the rebuild button to fix the corrupted database file and reinitialize the data.",{"type":49,"tag":62,"props":1302,"children":1303},{},[1304],{"type":49,"tag":50,"props":1305,"children":1306},{},[1307],{"type":54,"value":1308},"Note: After rebuilding the database, all local data will be lost.",{"type":49,"tag":50,"props":1310,"children":1311},{},[1312],{"type":49,"tag":1313,"props":1314,"children":1318},"img",{"alt":1226,"src":1315,"loading":1316,"decoding":1317},"https://assets.emqx.com/images/5ffffea84aac38f13a52c96a25663e22.png?x-image-process=image/resize,w_1520/format,webp","lazy","async",[],{"type":49,"tag":96,"props":1320,"children":1322},{"id":1321},"large-data-handling",[1323],{"type":54,"value":1324},"Large Data Handling",{"type":49,"tag":50,"props":1326,"children":1327},{},[1328],{"type":54,"value":1329},"Another issue is the performance hit caused by large message payloads. While typical MQTT messages are generally under 1MB, the maximum size can be 256 MB. When users send large files, rendering these messages in MQTTX can cause the UI to freeze or crash, resulting in a white screen.",{"type":49,"tag":50,"props":1331,"children":1332},{},[1333],{"type":54,"value":1334},"In the new version, we have implemented a data threshold. When the payload size exceeds 512KB, MQTTX will display only a portion of the message content. Users can click \"Show More\" to view the full message. Additionally, users can save large messages to their local system using the \"Save to Local\" button for viewing with other applications.",{"type":49,"tag":50,"props":1336,"children":1337},{},[1338],{"type":49,"tag":1313,"props":1339,"children":1342},{"alt":1340,"src":1341,"loading":1316,"decoding":1317},"image.png","https://assets.emqx.com/images/c093554bb650045c84eeeff03f1f28fe.png?x-image-process=image/resize,w_1520/format,webp",[],{"type":49,"tag":50,"props":1344,"children":1345},{},[1346],{"type":49,"tag":1313,"props":1347,"children":1349},{"alt":1340,"src":1348,"loading":1316,"decoding":1317},"https://assets.emqx.com/images/06becba2662d4c595d4cbed851442353.png?x-image-process=image/resize,w_1520/format,webp",[],{"type":49,"tag":50,"props":1351,"children":1352},{},[1353],{"type":54,"value":1354},"These improvements ensure that MQTTX can handle large payloads more efficiently, preventing UI freezes and enhancing the overall user experience.",{"type":49,"tag":84,"props":1356,"children":1358},{"id":1357},"web-updates",[1359],{"type":54,"value":1360},"Web Updates",{"type":49,"tag":96,"props":1362,"children":1364},{"id":1363},"added-support-for-base_url-configuration-via-env-file",[1365],{"type":54,"value":1366},"Added Support for BASE_URL Configuration via Env File",{"type":49,"tag":50,"props":1368,"children":1369},{},[1370,1372,1378,1380,1386],{"type":54,"value":1371},"If you need to make personalized settings, such as modifying the default connection path, deployment path, or output path, you can make the corresponding modifications in the ",{"type":49,"tag":141,"props":1373,"children":1375},{"className":1374},[],[1376],{"type":54,"value":1377},"web/.env",{"type":54,"value":1379}," or ",{"type":49,"tag":141,"props":1381,"children":1383},{"className":1382},[],[1384],{"type":54,"value":1385},"web/.env.docker",{"type":54,"value":1387}," files. These two files correspond to different packaging requirements, and you can modify them according to your situation.",{"type":54,"value":1389},"\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":1391,"props":1392,"children":1393},"table",{},[1394,1413],{"type":49,"tag":1395,"props":1396,"children":1397},"thead",{},[1398],{"type":49,"tag":1399,"props":1400,"children":1401},"tr",{},[1402,1408],{"type":49,"tag":1403,"props":1404,"children":1405},"th",{},[1406],{"type":54,"value":1407},"Configuration Item",{"type":49,"tag":1403,"props":1409,"children":1410},{},[1411],{"type":54,"value":1412},"Description",{"type":49,"tag":1414,"props":1415,"children":1416},"tbody",{},[1417,1431,1444,1466,1479],{"type":49,"tag":1399,"props":1418,"children":1419},{},[1420,1426],{"type":49,"tag":1421,"props":1422,"children":1423},"td",{},[1424],{"type":54,"value":1425},"VUE_APP_PAGE_TITLE",{"type":49,"tag":1421,"props":1427,"children":1428},{},[1429],{"type":54,"value":1430},"The title displayed in the browser's title bar",{"type":49,"tag":1399,"props":1432,"children":1433},{},[1434,1439],{"type":49,"tag":1421,"props":1435,"children":1436},{},[1437],{"type":54,"value":1438},"VUE_APP_PAGE_DESCRIPTION",{"type":49,"tag":1421,"props":1440,"children":1441},{},[1442],{"type":54,"value":1443},"A brief page description for SEO purposes",{"type":49,"tag":1399,"props":1445,"children":1446},{},[1447,1452],{"type":49,"tag":1421,"props":1448,"children":1449},{},[1450],{"type":54,"value":1451},"VUE_APP_DEFAULT_HOST",{"type":49,"tag":1421,"props":1453,"children":1454},{},[1455,1457,1464],{"type":54,"value":1456},"The default address of the ",{"type":49,"tag":77,"props":1458,"children":1461},{"href":1459,"rel":1460,"target":115},"https://www.emqx.com/en/blog/a-comprehensive-comparison-of-open-source-mqtt-brokers-in-2023",[114,114],[1462],{"type":54,"value":1463},"MQTT broker server",{"type":54,"value":1465}," connections",{"type":49,"tag":1399,"props":1467,"children":1468},{},[1469,1474],{"type":49,"tag":1421,"props":1470,"children":1471},{},[1472],{"type":54,"value":1473},"BASE_URL",{"type":49,"tag":1421,"props":1475,"children":1476},{},[1477],{"type":54,"value":1478},"The root URL where the application is deployed. Helpful in constructing links and routing",{"type":49,"tag":1399,"props":1480,"children":1481},{},[1482,1487],{"type":49,"tag":1421,"props":1483,"children":1484},{},[1485],{"type":54,"value":1486},"VUE_APP_OUTPUT_DIR",{"type":49,"tag":1421,"props":1488,"children":1489},{},[1490],{"type":54,"value":1491},"The directory where the build files will be placed after compilation",{"type":49,"tag":50,"props":1493,"children":1494},{},[1495],{"type":54,"value":1496},"These updates aim to provide a more flexible and user-friendly experience, allowing you to customize your MQTTX Web setup to fit your needs.",{"type":49,"tag":84,"props":1498,"children":1500},{"id":1499},"breaking-changes",[1501],{"type":49,"tag":134,"props":1502,"children":1503},{},[1504],{"type":54,"value":1505},"Breaking Changes",{"type":54,"value":1507},"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",{"type":49,"tag":1391,"props":1509,"children":1510},{},[1511,1527],{"type":49,"tag":1395,"props":1512,"children":1513},{},[1514],{"type":49,"tag":1399,"props":1515,"children":1516},{},[1517,1522],{"type":49,"tag":1403,"props":1518,"children":1519},{},[1520],{"type":54,"value":1521},"Old Command",{"type":49,"tag":1403,"props":1523,"children":1524},{},[1525],{"type":54,"value":1526},"New Command",{"type":49,"tag":1414,"props":1528,"children":1529},{},[1530,1543],{"type":49,"tag":1399,"props":1531,"children":1532},{},[1533,1538],{"type":49,"tag":1421,"props":1534,"children":1535},{},[1536],{"type":54,"value":1537},"mqttx conn -h broker.emqx.io -p 1883 --save",{"type":49,"tag":1421,"props":1539,"children":1540},{},[1541],{"type":54,"value":1542},"mqttx conn -h broker.emqx.io -p 1883 --save-options",{"type":49,"tag":1399,"props":1544,"children":1545},{},[1546,1551],{"type":49,"tag":1421,"props":1547,"children":1548},{},[1549],{"type":54,"value":1550},"mqttx conn --config /Users/mqttx-cli-config.json",{"type":49,"tag":1421,"props":1552,"children":1553},{},[1554],{"type":54,"value":1555},"mqttx conn --load-options /Users/mqttx-cli-options.json",{"type":49,"tag":50,"props":1557,"children":1558},{},[1559,1561,1567,1569,1575],{"type":54,"value":1560},"In this update, the ",{"type":49,"tag":141,"props":1562,"children":1564},{"className":1563},[],[1565],{"type":54,"value":1566},"--config",{"type":54,"value":1568}," parameter has been replaced with the ",{"type":49,"tag":141,"props":1570,"children":1572},{"className":1571},[],[1573],{"type":54,"value":1574},"--options",{"type":54,"value":1576}," parameter. This change is made to reflect better the purpose of these parameters, which is to save and load the frequently used command parameters.",{"type":49,"tag":554,"props":1578,"children":1579},{},[1580,1597],{"type":49,"tag":558,"props":1581,"children":1582},{},[1583,1588,1590,1596],{"type":49,"tag":134,"props":1584,"children":1585},{},[1586],{"type":54,"value":1587},"-so, --save-options",{"type":54,"value":1589},": Save the parameters to the local configuration file, which supports JSON and YAML formats. The default path is ",{"type":49,"tag":141,"props":1591,"children":1593},{"className":1592},[],[1594],{"type":54,"value":1595},"./mqttx-cli-options.json",{"type":54,"value":246},{"type":49,"tag":558,"props":1598,"children":1599},{},[1600,1605,1607,1612],{"type":49,"tag":134,"props":1601,"children":1602},{},[1603],{"type":54,"value":1604},"-lo, --load-options",{"type":54,"value":1606},": Load the parameters from the local configuration file, which supports JSON and YAML formats. The default path is ",{"type":49,"tag":141,"props":1608,"children":1610},{"className":1609},[],[1611],{"type":54,"value":1595},{"type":54,"value":246},{"type":49,"tag":84,"props":1614,"children":1616},{"id":1615},"others",[1617],{"type":54,"value":1618},"Others",{"type":49,"tag":50,"props":1620,"children":1621},{},[1622],{"type":49,"tag":134,"props":1623,"children":1624},{},[1625],{"type":54,"value":1626},"New Features and Improvements",{"type":49,"tag":554,"props":1628,"children":1629},{},[1630,1640],{"type":49,"tag":558,"props":1631,"children":1632},{},[1633,1638],{"type":49,"tag":134,"props":1634,"children":1635},{},[1636],{"type":54,"value":1637},"Auto Re-subscription Tips",{"type":54,"value":1639},": The subscription dialog now has auto re-subscription tips. When subscribing, you can see whether the auto re-subscription feature is enabled.",{"type":49,"tag":558,"props":1641,"children":1642},{},[1643,1648],{"type":49,"tag":134,"props":1644,"children":1645},{},[1646],{"type":54,"value":1647},"GPT-4o Support",{"type":54,"value":1649},": Added support for GPT-4o in MQTTX Copilot, bringing advanced AI capabilities to your MQTTX experience.",{"type":49,"tag":50,"props":1651,"children":1652},{},[1653],{"type":49,"tag":134,"props":1654,"children":1655},{},[1656],{"type":54,"value":1657},"Bug Fixes",{"type":49,"tag":554,"props":1659,"children":1660},{},[1661,1671,1681,1691,1701],{"type":49,"tag":558,"props":1662,"children":1663},{},[1664,1669],{"type":49,"tag":134,"props":1665,"children":1666},{},[1667],{"type":54,"value":1668},"Version Update Dialog",{"type":54,"value":1670},": The version update dialog was fixed to ensure it is properly adapted to dark mode and provides a consistent user experience across different themes.",{"type":49,"tag":558,"props":1672,"children":1673},{},[1674,1679],{"type":49,"tag":134,"props":1675,"children":1676},{},[1677],{"type":54,"value":1678},"Topic Filtering",{"type":54,"value":1680},": Resolved an issue with topic filtering, ensuring accurate and reliable filtering of topics.",{"type":49,"tag":558,"props":1682,"children":1683},{},[1684,1689],{"type":49,"tag":134,"props":1685,"children":1686},{},[1687],{"type":54,"value":1688},"Logging Improvements",{"type":54,"value":1690},": Enhanced the logging format and improved bench sub logs by graying out output meta information, making logs more readable and useful for debugging.",{"type":49,"tag":558,"props":1692,"children":1693},{},[1694,1699],{"type":49,"tag":134,"props":1695,"children":1696},{},[1697],{"type":54,"value":1698},"Subscription Errors",{"type":54,"value":1700},": Fixed the subscription error logic when dealing with multiple topics, ensuring smoother and more reliable subscriptions.",{"type":49,"tag":558,"props":1702,"children":1703},{},[1704,1709],{"type":49,"tag":134,"props":1705,"children":1706},{},[1707],{"type":54,"value":1708},"CLI Pub Failure Handling",{"type":54,"value":1710},": Improved the reconnection logic in the CLI for publishing failures, ensuring that the CLI handles pub failures more gracefully and attempts reconnections as needed.",{"type":49,"tag":50,"props":1712,"children":1713},{},[1714],{"type":54,"value":1715},"These updates focus on improving user experience, enhancing functionality, and fixing critical bugs to ensure a smoother and more reliable operation of MQTTX.",{"type":49,"tag":84,"props":1717,"children":1719},{"id":1718},"roadmap",[1720],{"type":54,"value":1721},"Roadmap",{"type":49,"tag":554,"props":1723,"children":1724},{},[1725,1796,1815,1825,1842,1852,1862,1888,1898],{"type":49,"tag":558,"props":1726,"children":1727},{},[1728,1733,1735],{"type":49,"tag":134,"props":1729,"children":1730},{},[1731],{"type":54,"value":1732},"Payload Chart Visualization Enhancement - MQTTX Viewer",{"type":54,"value":1734},":\n",{"type":49,"tag":554,"props":1736,"children":1737},{},[1738,1748,1758,1768,1778],{"type":49,"tag":558,"props":1739,"children":1740},{},[1741,1746],{"type":49,"tag":134,"props":1742,"children":1743},{},[1744],{"type":54,"value":1745},"Topic Tree View",{"type":54,"value":1747},": Enhance organization and visualization of topics.",{"type":49,"tag":558,"props":1749,"children":1750},{},[1751,1756],{"type":49,"tag":134,"props":1752,"children":1753},{},[1754],{"type":54,"value":1755},"Diff View",{"type":54,"value":1757},": Compare different messages or payloads easily.",{"type":49,"tag":558,"props":1759,"children":1760},{},[1761,1766],{"type":49,"tag":134,"props":1762,"children":1763},{},[1764],{"type":54,"value":1765},"Dashboard View:",{"type":54,"value":1767}," Offer a customizable overview of MQTT activities for personalized insights.",{"type":49,"tag":558,"props":1769,"children":1770},{},[1771,1776],{"type":49,"tag":134,"props":1772,"children":1773},{},[1774],{"type":54,"value":1775},"JSON View",{"type":54,"value":1777},": Improve handling and display of JSON formatted data.",{"type":49,"tag":558,"props":1779,"children":1780},{},[1781,1786,1788,1795],{"type":49,"tag":134,"props":1782,"children":1783},{},[1784],{"type":54,"value":1785},"System Topic View",{"type":54,"value":1787},": Specialized view for system-related ",{"type":49,"tag":77,"props":1789,"children":1792},{"href":1790,"rel":1791,"target":115},"https://www.emqx.com/en/blog/advanced-features-of-mqtt-topics",[114,114],[1793],{"type":54,"value":1794},"MQTT topics",{"type":54,"value":246},{"type":49,"tag":558,"props":1797,"children":1798},{},[1799,1813],{"type":49,"tag":134,"props":1800,"children":1801},{},[1802,1804,1811],{"type":54,"value":1803},"Support for Configurable Disconnect Properties (",{"type":49,"tag":77,"props":1805,"children":1808},{"href":1806,"rel":1807,"target":115},"https://www.emqx.com/en/blog/introduction-to-mqtt-5",[114,114],[1809],{"type":54,"value":1810},"MQTT 5.0",{"type":54,"value":1812},")",{"type":54,"value":1814},": Enhance connection management with customizable disconnection settings.",{"type":49,"tag":558,"props":1816,"children":1817},{},[1818,1823],{"type":49,"tag":134,"props":1819,"children":1820},{},[1821],{"type":54,"value":1822},"IoT Scenario Data Simulation",{"type":54,"value":1824},": Bring this feature to the desktop client to ease IoT scenario testing.",{"type":49,"tag":558,"props":1826,"children":1827},{},[1828,1840],{"type":49,"tag":134,"props":1829,"children":1830},{},[1831,1838],{"type":49,"tag":77,"props":1832,"children":1835},{"href":1833,"rel":1834,"target":115},"https://www.emqx.com/en/solutions/mqtt-sparkplug",[114,114],[1836],{"type":54,"value":1837},"Sparkplug B",{"type":54,"value":1839}," Support",{"type":54,"value":1841},": Extend MQTTX functionalities to include support for Sparkplug B.",{"type":49,"tag":558,"props":1843,"children":1844},{},[1845,1850],{"type":49,"tag":134,"props":1846,"children":1847},{},[1848],{"type":54,"value":1849},"QoS 0 Message Storage Optimization",{"type":54,"value":1851},": Configurable options to reduce storage space usage.",{"type":49,"tag":558,"props":1853,"children":1854},{},[1855,1860],{"type":49,"tag":134,"props":1856,"children":1857},{},[1858],{"type":54,"value":1859},"MQTT GUI Debug Functionality",{"type":54,"value":1861},": New features to aid in debugging MQTT communications.",{"type":49,"tag":558,"props":1863,"children":1864},{},[1865,1870,1872,1879,1880,1887],{"type":49,"tag":134,"props":1866,"children":1867},{},[1868],{"type":54,"value":1869},"Plugin Functionality",{"type":54,"value":1871},": Introduction of a plugin system supporting protocol extensions like ",{"type":49,"tag":77,"props":1873,"children":1876},{"href":1874,"rel":1875,"target":115},"https://www.emqx.com/en/blog/coap-protocol",[114,114],[1877],{"type":54,"value":1878},"CoAP",{"type":54,"value":460},{"type":49,"tag":77,"props":1881,"children":1884},{"href":1882,"rel":1883,"target":115},"https://www.emqx.com/en/blog/connecting-mqtt-sn-devices-using-emqx",[114,114],[1885],{"type":54,"value":1886},"MQTT-SN",{"type":54,"value":246},{"type":49,"tag":558,"props":1889,"children":1890},{},[1891,1896],{"type":49,"tag":134,"props":1892,"children":1893},{},[1894],{"type":54,"value":1895},"Avro Message Format Support",{"type":54,"value":1897},": Encoding and decoding capabilities for Avro message format.",{"type":49,"tag":558,"props":1899,"children":1900},{},[1901,1906],{"type":49,"tag":134,"props":1902,"children":1903},{},[1904],{"type":54,"value":1905},"Script Test Automation (Flow)",{"type":54,"value":1907},": Simplify the creation and management of automated testing workflows.",{"title":42,"searchDepth":1909,"depth":1909,"links":1910},2,[1911,1918,1922,1926,1929,1930,1931],{"id":86,"depth":1909,"text":89,"children":1912},[1913,1915,1916,1917],{"id":98,"depth":1914,"text":101},3,{"id":316,"depth":1914,"text":319},{"id":375,"depth":1914,"text":378},{"id":470,"depth":1914,"text":473},{"id":908,"depth":1909,"text":911,"children":1919},[1920,1921],{"id":926,"depth":1914,"text":929},{"id":1151,"depth":1914,"text":1154},{"id":1212,"depth":1909,"text":1215,"children":1923},[1924,1925],{"id":1223,"depth":1914,"text":1226},{"id":1321,"depth":1914,"text":1324},{"id":1357,"depth":1909,"text":1360,"children":1927},[1928],{"id":1363,"depth":1914,"text":1366},{"id":1499,"depth":1909,"text":1505},{"id":1615,"depth":1909,"text":1618},{"id":1718,"depth":1909,"text":1721},"markdown","content:blog:en:mqttx-1-10-0-release-notes.md","content","blog/en/mqttx-1-10-0-release-notes.md","md",{"loc":1938,"lastmod":30},"/blog/mqttx-1-10-0-release-notes",[1940,1947,1954,1960,1967,1974,1981,1987,1994,2001,2008,2009,2016,2023,2030,2037,2044,2051,2057,2064,2071,2078,2085,2092,2099,2106,2112,2119,2125,2132,2138,2145,2152],{"slug":1941,"title":1942,"description":1943,"date":1944,"category":31,"cover":1945,"version":1946},"mqttx-1-13-2-released","MQTTX 1.13.2 Released: MQTTX Agent and Dashboard","MQTTX 1.13.2 uses MQTTX Agent to automate MQTT tests, compare messages, and investigate failures, with independent Dashboard views for telemetry.","2026-10-26","/images/blog/mqttx-1-13-2-released.webp","1.13.2",{"slug":1948,"title":1949,"description":1950,"date":1951,"category":1952,"cover":1953,"version":-1},"introducing-mqttx-ai-agent-skill","Introducing the MQTTX AI Agent Skill","MQTTX CLI now ships with an Agent Skill that teaches AI coding agents to run MQTT checks, benchmarks, and simulations correctly.","2026-09-20","product","/images/blog/introducing-mqttx-ai-agent-skill.webp",{"slug":1955,"title":1956,"description":1957,"date":1951,"category":31,"cover":1958,"version":1959},"mqttx-1-13-1-released","MQTTX 1.13.1 Released: AI Agent Skill & MQTT 5.0 Subscription Properties","MQTTX 1.13.1 adds a CLI Agent Skill, MQTT 5.0 subscription user properties, and improvements to data export, rendering security, and everyday debugging.","/images/blog/mqttx-1-13-1-released.webp","1.13.1",{"slug":1961,"title":1962,"description":1963,"date":1964,"category":31,"cover":1965,"version":1966},"mqttx-1-13-0-released","MQTTX 1.13.0 Released: Payload Inspector & UI Improvements","This version introduces the new Payload Inspector feature, including Diff View and JSON Tree View, making message debugging more intuitive and efficient.","2026-02-03","https://assets.emqx.com/images/0e14974014915e21f0789dcb39bfe0c1.png","1.13.0",{"slug":1968,"title":1969,"description":1970,"date":1971,"category":31,"cover":1972,"version":1973},"mqttx-1-12-1-release-notes","MQTTX 1.12.1 Released: SCRAM Authentication & Enhanced Security","MQTTX 1.12.1 brings SCRAM authentication, XSS vulnerability fixes, 2025 AI model updates, and major stability enhancements for secure, reliable performance.","2025-10-14","https://assets.emqx.com/images/949f66c444b9b00f5f5e0a865609987d.png","1.12.1",{"slug":1975,"title":1976,"description":1977,"date":1978,"category":31,"cover":1979,"version":1980},"mqttx-1-12-0-release-notes","MQTTX 1.12.0 Released: Copilot 2.0 & Native MCP Integration","MQTTX 1.12.0 lands with Copilot 2.0 (Gemini 2.5 Pro, Claude-4, GPT-4.1, o3/o4-mini, Azure OpenAI) and native MCP integration for instant AI workflows.","2025-07-03","https://assets.emqx.com/images/121f632a5da928c70d8e2868e3a09b1c.jpg","1.12.0",{"slug":1982,"title":1983,"description":1984,"date":1985,"category":1952,"cover":1986,"version":-1},"enhancing-mqtt-toolbox-with-ai-capabilities","MQTTX + MCP: Enhancing MQTT Toolbox with AI Capabilities","MQTTX, the most popular MQTT client toolbox, has enhanced its capabilities in 1.12.0 beta by integrating the Model Context Protocol (MCP) into its Copilot AI feature.","2025-04-09","https://assets.emqx.com/images/863b289a14550fa39793fb8414837c04.jpg",{"slug":1988,"title":1989,"description":1990,"date":1991,"category":31,"cover":1992,"version":1993},"mqttx-1-11-1-release-notes","MQTTX 1.11.1 Released: Enhanced Visualization","This release enhances MQTTX's visualization capabilities with improved Topic Tree features and real-time traffic monitoring.","2024-12-19","https://assets.emqx.com/images/878e3b58243c4f4e50034ad5604a8951.jpg","1.11.1",{"slug":1995,"title":1996,"description":1997,"date":1998,"category":31,"cover":1999,"version":2000},"mqttx-1-11-0-release-notes","MQTTX 1.11.0 Released: Topic Tree and Avro Schema","This release introduces Topic Tree visualization, a powerful new way to organize and monitor MQTT topics hierarchically.","2024-10-29","https://assets.emqx.com/images/dba4e395e4043265d635384c6670c206.jpg","1.11.0",{"slug":2002,"title":2003,"description":2004,"date":2005,"category":31,"cover":2006,"version":2007},"mqttx-1-10-1-release-notes","MQTTX 1.10.1 Released: One-Click CLI Installation via Desktop","This release focuses on enhancing the user experience with several key updates. The highlight is the one-click installation for MQTTX CLI via the Desktop application.","2024-07-24","https://assets.emqx.com/images/7a7961ab5f29584b8b157b967e6fe0b2.jpg","1.10.1",{"slug":27,"title":28,"description":29,"date":30,"category":31,"cover":32,"version":33},{"slug":2010,"title":2011,"description":2012,"date":2013,"category":31,"cover":2014,"version":2015},"mqttx-1-9-10-release-notes","MQTTX 1.9.10 Released: Enhanced Diagnostic Insights","This release features crucial Faker.js updates, better diagnostic insights for disconnections and subscription issues, and new CLI and UI enhancements. It aims to simplify user workflows and enhance troubleshooting.","2024-04-15","https://assets.emqx.com/images/c6a16836537c82bc580e738ca0534d5c.jpg","1.9.10",{"slug":2017,"title":2018,"description":2019,"date":2020,"category":2021,"cover":2022,"version":-1},"how-to-publish-and-receive-protobuf-messages-within-mqtt","How to Publish and Receive Protobuf Messages within MQTT?","This article will demonstrate how to define, publish, and receive Protobuf messages with MQTTX client.","2024-03-25","guides","https://assets.emqx.com/images/8c5e5764795a2b500deb4f429b1f7f64.jpg",{"slug":2024,"title":2025,"description":2026,"date":2027,"category":31,"cover":2028,"version":2029},"mqttx-1-9-9-release-notes","MQTTX 1.9.9 Released: Debug Logging and UI Flexibility","MQTTX 1.9.9 is now available with critical updates: improved connection events, CBOR data format support, customizable log levels for debugging, and enhanced UI flexibility.","2024-03-04","https://assets.emqx.com/images/b1f147c49bded5c95a52d2a4d212fb59.png","1.9.9",{"slug":2031,"title":2032,"description":2033,"date":2034,"category":31,"cover":2035,"version":2036},"mqttx-1-9-8-release-notes","MQTTX 1.9.8 Released: CLI Debug Mode and Copilot Enhancements","MQTTX 1.9.8 is now available, introducing a new CLI Debug Mode. This feature greatly enhances developers' troubleshooting and analysis capabilities.","2024-01-15","https://assets.emqx.com/images/7598cdfaaad358b469b840dd93d95893.png","1.9.8",{"slug":2038,"title":2039,"description":2040,"date":2041,"category":31,"cover":2042,"version":2043},"mqttx-1-9-7-release-notes","MQTTX 1.9.7: Introducing Copilot - Your AI-Powered MQTT Assistant","A significant highlight of this release is the introduction of MQTTX Copilot, our innovative MQTT AI assistant, specially designed to offer crucial convenience to users.","2023-12-18","https://assets.emqx.com/images/8f8d0aa2b0e70f2c28b71f846e21f68b.png","1.9.7",{"slug":2045,"title":2046,"description":2047,"date":2048,"category":31,"cover":2049,"version":2050},"mqttx-v-1-9-6-release-notes","MQTTX 1.9.6 Released: ALPN Protocol Support, Optimized Publish Options Interface","This update prioritizes the improvement of connection protocols and user interface for a better experience.","2023-09-30","https://assets.emqx.com/images/2f2554241e1fbe1e6d11a066e5e61a20.png","1.9.6",{"slug":2052,"title":2053,"description":2054,"date":2055,"category":2021,"cover":2056,"version":-1},"demonstrate-mqtt-5-0-features-using-mqttx-cli","Explore New Features of MQTT 5.0: Usage Examples Based on MQTTX CLI","This blog will introduce each new feature introduced in 5.0 in turn, and use the MQTTX CLI tool to demonstrate how we can use these features in EMQX.","2023-09-07","https://assets.emqx.com/images/c566cf1994ec1e29c6fea3b33270f535.png",{"slug":2058,"title":2059,"description":2060,"date":2061,"category":31,"cover":2062,"version":2063},"mqttx-1-9-5-released-json-message-highlighting-and-more","MQTTX 1.9.5 Released: JSON Message Highlighting and More!","In this version, we have mainly enhanced the error message prompts for JSON syntax in the desktop client and added support for JSON highlighting in messages.","2023-08-17","https://assets.emqx.com/images/beefc011aa3bda44261a33f7adaef669.png","1.9.5",{"slug":2065,"title":2066,"description":2067,"date":2068,"category":31,"cover":2069,"version":2070},"mqttx-v-1-9-4-release-notes","MQTTX 1.9.4: Empowering High-Frequency MQTT Testing with Protobuf Integration","This update brings significant improvements to user experience, including more efficient support for Protobuf message transmission and optimized automatic update functionality.","2023-07-19","https://assets.emqx.com/images/6d6aab33de33c914d87f7fd6a4d86153.png","1.9.4",{"slug":2072,"title":2073,"description":2074,"date":2075,"category":31,"cover":2076,"version":2077},"mqttx-1-9-3-introduces-powerful-iot-scenario-data-simulation-feature","Boosting Development Efficiency: MQTTX 1.9.3 Introduces Powerful IoT Scenario Data Simulation","MQTTX 1.9.3 introduced a valuable enhancement to its command-line client: It empowers developers to simulate IoT scenario data, catering to their specific testing needs.","2023-05-29","https://assets.emqx.com/images/657ba5a04f29a7b318206a642223db8f.png","1.9.3",{"slug":2079,"title":2080,"description":2081,"date":2082,"category":31,"cover":2083,"version":2084},"mqttx-v-1-9-2-release-notes","MQTTX 1.9.2 Released: The Best MQTT Client Toolbox Is Even Better","v1.9.2 supports the output mode of the command-line tool, allowing users to customize data pipelines according to their needs and thus more conveniently and efficiently process output data.","2023-04-27","https://assets.emqx.com/images/44cad865821d28706395fd74e8bd766a.png","1.9.2",{"slug":2086,"title":2087,"description":2088,"date":2089,"category":31,"cover":2090,"version":2091},"mqttx-v-1-9-1-release-notes","MQTTX 1.9.1 is Released: Resource Utilization Reduced by 80%, and Stability Greatly Improved","MQTT X 1.9.1 has significantly reduced CPU and memory usage by 80% compared to the previous version, resulting in greatly optimized overall performance and reduced risk of system crashes.","2023-02-16","https://assets.emqx.com/images/754c43fbfce927d7b9f41f98e9c47338.png","1.9.1",{"slug":2093,"title":2094,"description":2095,"date":2096,"category":31,"cover":2097,"version":2098},"mqttx-v-1-9-0-release-notes","MQTTX 1.9.0 released with an Out-of-the-box bench command, making your MQTT test even easier","Recently, MQTT X 1.9.0 has been released. For the command-line client, the bench command has been added to help users easily complete MQTT service performance testing.","2022-11-15","https://assets.emqx.com/images/8381cbe50e0aa19dcf36020b11de6fba.png","1.9.0",{"slug":2100,"title":2101,"description":2102,"date":2103,"category":31,"cover":2104,"version":2105},"mqttx-v-1-8-3-release-notes","MQTTX v1.8.3 Release Notes","Recently, MQTT X released the latest version 1.8.3, The main optimization of function usage and the various problems encountered in the process of use are fixed.","2022-11-01","https://assets.emqx.com/images/ad183ef26fc1dfaf6c33b46256c04e16.png","1.8.3",{"slug":2107,"title":2108,"description":2109,"date":2110,"category":1952,"cover":2111,"version":-1},"powerful-and-easy-to-use-mqtt-5-command-line-tool","MQTTX CLI: A Powerful and Easy-to-Use MQTT CLI","In order to provide more choices and convenience for users to implement MQTT connection tests, MQTT X v1.8.0 adds the command line as a form of interaction - the MQTT X CLI.","2022-08-11","https://assets.emqx.com/images/5cd78ca578543888ebfc50ced158dcd0.png",{"slug":2113,"title":2114,"description":2115,"date":2116,"category":31,"cover":2117,"version":2118},"mqttx-v-1-7-1-release-notes","MQTTX v1.7.1 Release Note","MQTT X v1.7.1 release note: Support MQTT 5.0 subscription Identifier, expose more MQTT 5.0 properties on display.","2022-01-28","https://assets.emqx.com/images/0fd941ba646695f51f019da65a693087.png","1.7.1",{"slug":2120,"title":2121,"description":2122,"date":2116,"category":31,"cover":2123,"version":2124},"mqttx-v-1-7-2-release-notes","MQTTX v1.7.2 Release Note","MQTT X v1.7.2 release note: Shared subscriptions support topic color markers, add more ARM builds.","https://assets.emqx.com/images/8cedad1520b432cc23fe3cf73df87586.png","1.7.2",{"slug":2126,"title":2127,"description":2128,"date":2129,"category":31,"cover":2130,"version":2131},"mqttx-v-1-7-0-release-notes","MQTTX v1.7.0 released: the desktop client that supports MQTT 5.0 most","Recently, MQTT X v1.7.0 was officially released, from this version, MQTT X will further support many new features of MQTT 5.0.","2022-01-04","https://assets.emqx.com/images/b670f636cd22144ede7d122af5127319.png","1.7.0",{"slug":2133,"title":2134,"description":2135,"date":2136,"category":2021,"cover":2137,"version":-1},"mqttx-script-function-tutorial","MQTTX Script Function Tutorial","MQTT X has added a script function since v1.4.2. This article will introduce the use of the script function with two simple instances.","2021-03-01","https://assets.emqx.com/images/188cd490ad41a00c2eb797256cd3145a.png",{"slug":2139,"title":2140,"description":2141,"date":2142,"category":31,"cover":2143,"version":2144},"mqttx-v-1-4-2-release-notes","MQTTX v1.4.2 released with script features","MQTT X v1.4.2 released with script features, automatically append a timestamp to Client ID and optimize some functions.","2021-01-27","https://assets.emqx.com/images/06011d34d8e9b805d2d03b3a546648ee.png","1.4.2",{"slug":2146,"title":2147,"description":2148,"date":2149,"category":31,"cover":2150,"version":2151},"mqttx-v-1-3-1-release-notes","MQTTX v1.3.1 release notes - MQTT 5.0 client tool","MQTT 5.0 client tool - MQTT X v1.3.1, which adds an enable item of strictly validating certificate and supports for more attributes of MQTT 5.0.","2020-05-21","https://assets.emqx.com/images/240e432d5797596aa555d2fdf9640dd5.png","1.3.1",{"slug":2153,"title":2154,"description":2155,"date":2156,"category":31,"cover":2157,"version":2158},"mqttx-v1-3-0-was-officially-released-an-elegant-cross-platform-mqtt5-desktop-test-client","MQTTX v1.3.0 was officially released - Cross-platform MQTT 5.0 desktop test client","MQTT X is a cross-platform MQTT 5.0 desktop test client provided by the world's leading open source IoT middleware provider EMQ , which supports macOS, Linux, Windows. The user interface of MQTT X simplifies the operation logic of the page with the pattern of chatting software. Users can quickly create multiple simultaneous-online MQTT clients to test the connection/publish/subscribe functions of MQTT/TCP, MQTT/TLS and other MQTT protocol features.","2020-03-19","https://assets.emqx.com/images/dbb7d0024d3462edf7ad617978679fbb.png","1.3.0",1793585628984]