EMQX Dedicated New Feature: Event History is available for private beta test. →

MQTTX: All-In-One Testing and Debugging for IoT Apps

Shifan Yu
Jul 10, 2023
MQTTX: All-In-One Testing and Debugging for IoT Apps

What Is MQTTX?

MQTT is a lightweight publish/subscribe messaging protocol designed for constrained devices and low-bandwidth, high-latency, or unreliable networks. It's typically used in Machine-to-Machine (M2M) or Internet of Things (IoT) applications where a small code footprint is required or network bandwidth is limited.

MQTT deployments are growing to support very large numbers of devices and connections—managing, testing, and debugging these deployments can be a complex task. MQTTX simplifies the process by providing a user-friendly, cross-platform client toolbox designed to streamline the development of MQTT-based applications.

MQTTX is a powerful, all-in-one MQTT 5.0 client toolbox that simplifies MQTT development across all platforms. It is available in desktop, CLI, and web versions, and is equipped with rich developer features and a clean, intuitive interface. It fully complies with MQTT standards.

MQTTX is an open-source project developed with Javascript and Electron framework and maintained by the EMQX team.

Official Website: https://mqttx.app/

GitHub Project: https://github.com/emqx/mqttx

MQTTX Desktop Preview

MQTTX Desktop Preview

Use Cases for MQTTX

IoT Device Testing

When working with IoT devices, MQTTX allows developers to easily simulate and test various scenarios. For instance, you can quickly connect to an MQTT broker, subscribe to a topic, and monitor the incoming messages. This allows for quick testing of device connectivity and message integrity.

Debugging MQTT Connections

When developing an MQTT-based application, it's crucial to be able to quickly identify and resolve any issues that might arise with the MQTT connections. MQTTX provides an easy-to-use interface that allows you to monitor and analyze MQTT messages in real-time.

With MQTTX, you can easily keep track of the status of your MQTT connections, including the connection time, message count, and connection status. Additionally, MQTTX provides detailed logs of all MQTT messages, which can be incredibly helpful when debugging connection issues.

Simulating MQTT Messaging for Development

With MQTTX, you can easily publish messages to any topic and subscribe to receive messages on that topic. This allows you to simulate real-world scenarios and see how your application would behave under those conditions.

Additionally, MQTTX allows you to customize the MQTT QoS level, retain flag, and payload for each message, giving you complete control over the messaging simulation. This makes it an invaluable tool for simulating MQTT messaging during the development process.

Getting Started with MQTTX

Step 1: Deploy a Free Public MQTT Broker

Before trying MQTTX, we need an MQTT broker to communicate and test. You can use the free public MQTT broker.

Use this info when configuring the MQTT broker:

Server: broker.emqx.io

TCP Port: 1883

WebSocket Port: 8083

SSL/TLS Port: 8883

Secure WebSocket Port: 8084

Try EMQX Cloud Serverless
Forever free under 1M session minutes/month.
Get Started →

Step 2: Run MQTT Client Toolbox

There are three options for running MQTT Client Toolbox:

MQTTX CLI Preview

MQTTX CLI Preview

Main Features of MQTTX

The main features of MQTTX include:

  • Connection Management: Manage multiple connections flexibly.
  • Publishing/Subscription Interface: Chat-like, intuitive interface.
  • Color-Coded Subscriptions: Distinct colors for different subscriptions.
  • Payload Format and Codec: Choose among Hex, Base64, JSON, or Plaintext.
  • Data Simulation: Customize MQTT Pub/Sub scripts.
  • Benchmark Support: Test MQTT server performance.
  • Browser-Based: Use MQTTX online, no installation required.
  • Logging: Easy tracking and debugging.
  • Data Pipeline: Quick automation test script integration.

Let's explore some of these GUI features in more detail.

Manage Multiple MQTT Connections

One of the standout features of MQTTX is its ability to manage multiple MQTT connections simultaneously. This is particularly useful when working on complex projects that involve multiple IoT devices or MQTT brokers.

With MQTTX, you can easily switch between different MQTT connections, allowing you to monitor and debug multiple devices or applications at the same time. Each connection is displayed in a separate tab, making it easy to navigate between different connections.

Furthermore, MQTTX allows you to save and manage your MQTT connections, making it easy to quickly reconnect to a previously used broker. This saves a significant amount of time, especially when working on large projects that require frequent switching between different MQTT connections.

Multiple MQTT Connections

Multiple MQTT Connections

Chat UI for Publishing/Subscribing

Another notable feature of MQTTX is its Chat UI for publishing and subscribing to MQTT messages. The interface is designed to mimic a chat application, making it intuitive and easy to use.

When subscribing to a topic, MQTTX displays the incoming messages in a chat-like format. This makes it easy to monitor the incoming messages and understand the flow of data. Similarly, when publishing a message, MQTTX provides a simple and straightforward interface for entering the topic and payload.

Furthermore, MQTTX supports both text and binary payloads, allowing you to send any type of data. This flexibility makes MQTTX a versatile tool for testing and debugging MQTT applications.

Chat UI

Chat UI

Custom Colors for MQTT Subscriptions

MQTTX also allows you to assign custom colors to different MQTT subscriptions. This is a useful feature when monitoring multiple subscriptions, as it allows you to easily distinguish between different topics.

With custom colors, you can quickly identify the source of a message based on its color. This makes it easier to monitor and analyze the incoming messages, especially when dealing with a large number of topics.

Furthermore, MQTTX allows you to customize the color for each subscription, giving you complete control over the appearance of your MQTT subscriptions.

Custom Colors

Custom Colors


Show Colors in Topic and Messages

Show Colors in Topic and Messages

Message Payload Format and Codec

MQTTX supports a variety of payload formats and codecs, making it a versatile tool for working with MQTT. You can choose from a variety of payload formats, including plain text, JSON, and binary. This allows you to send and receive data in the format that best suits your application.

Additionally, MQTTX supports various codecs, including Base64, Hex, and Utf-8. This allows you to encode and decode your payloads, ensuring that your data is transmitted correctly.

Furthermore, MQTTX provides a payload preview feature, allowing you to preview your payload before sending it. This is a handy feature when working with complex payloads, as it allows you to verify the payload before sending it.

Publish Payload Format

Publish Payload Format


Received Payload Format

Received Payload Format

Message History and Filtering

Another useful feature of MQTTX is its message history and filtering capabilities. MQTTX automatically stores a history of all the messages that you have sent or received, allowing you to easily review and analyze your MQTT data.

Additionally, MQTTX provides a powerful filtering feature, allowing you to filter your message history based on various criteria, such as topic, payload, and timestamp. This allows you to quickly find specific messages, making it easier to debug and analyze your MQTT data.

Furthermore, MQTTX allows you to export your message history, allowing you to save your MQTT data for future reference or analysis. This is a useful feature when working on large projects, as it allows you to keep a record of your MQTT interactions.

Topic and Message Search

Topic and Message Search


Topic Filter

Topic Filter

Customized Script for Pub/Sub Simulation

Finally, MQTTX also provides a feature for creating customized scripts for publishing and subscribing simulations. This is an advanced feature that allows you to automate the process of publishing and subscribing to MQTT messages.

With this feature, you can create a script that automates the process of connecting to an MQTT broker, subscribing to a topic, and publishing messages. This allows you to simulate complex scenarios and test your application under various conditions.

Furthermore, MQTTX supports JavaScript for scripting, making it a flexible and powerful tool for automating MQTT simulations.

ustomized Script for Pub/Sub Simulation 1 ustomized Script for Pub/Sub Simulation 2

MQTTX Community Support

The open-source ethos of MQTTX has cultivated a thriving community of dedicated developers. This collective continuously refines MQTTX, ensuring it stays relevant and user-focused. This collaborative development accelerates MQTTX's evolution and aligns it with the needs of its users.

For developers, the MQTTX community offers a resource-rich platform for learning, problem-solving, and professional growth. For the IoT industry, it guarantees a constantly improving, feature-packed MQTT client toolbox that keeps pace with industry advancements.

https://github.com/emqx/MQTTX/discussions

Wrap Up

In conclusion, if you're developing MQTT-based applications, MQTTX is an invaluable tool that can simplify your work. It's easy to use, intuitive, and packed with powerful features that make it the best MQTT client toolbox. Try it out and see for yourself!

Try MQTTX for Free
Download Now →

Related Posts