Live WebSocket MQTT Client

MQTT Viewer for v3.1.1 & v5 — right in your browser

Connect to any broker over WebSocket, subscribe to topics, publish messages, and watch real packets arrive in real time. No install, no account, nothing leaves your browser except the MQTT traffic you choose to send.

2Protocol versions
0msServer round-trip*
3Export formats
100%Client-side session
The Tool

Connect. Subscribe. Publish. Inspect.

Enter your broker's WebSocket endpoint below. Everything runs live in this tab — connections are made directly from your browser to the broker you specify.

🔌 Broker Connection Disconnected

Enter a valid ws:// or wss:// URL, e.g. wss://broker.emqx.io:8084/mqtt
Browsers require WebSocket (ws/wss), not raw TCP. Use wss:// on HTTPS pages.
Advanced connection options

Last Will & Testament

🌐 Quick-connect test brokers

Public brokers for testing only — never send sensitive data.

Enter a topic filter (wildcards + and # allowed).

Active subscriptions

  • No active subscriptions
Enter a valid topic (no + or # wildcards allowed when publishing).

📨 Live Messages

0 messages
Time
Topic
Payload
QoS
Retain

No messages yet. Connect to a broker and subscribe to a topic to see live packets here.

🔒 Security recommendations

  • Always use wss:// (TLS) instead of plain ws:// when connecting over the public internet — plain WebSocket traffic, including your username and password, can be read by anyone on the network path.
  • Avoid using public test brokers (EMQX, Mosquitto, HiveMQ) for anything beyond experimentation — topics on these brokers are visible to any connected client worldwide.
  • Use unique, unpredictable client IDs. A guessable client ID lets an attacker connect with the same ID and disconnect your session.
  • Restrict broker ACLs so each client can only publish and subscribe to the topics it actually needs (principle of least privilege).
  • Prefer username/password or client-certificate authentication over anonymous access, and rotate credentials periodically.
  • Set a Last Will message on sensitive devices so other subscribers are notified immediately if a client disconnects unexpectedly.
  • Enable message and session expiry on MQTT v5 brokers to avoid stale retained messages lingering indefinitely.
Capabilities

Built for real MQTT debugging

Advanced features you'd expect from a desktop MQTT client, delivered in a browser tab.

MQTT v3.1.1 & v5.0

Switch protocol versions per connection, with full support for v5-only properties like message expiry, response topics, and user properties.

🔀

Wildcard subscriptions

Subscribe with single-level (+) and multi-level (#) wildcards, and manage multiple simultaneous subscriptions with independent QoS.

🧾

Retained & Last Will

Publish retained messages, configure a Last Will & Testament, and clearly flag retained packets as they arrive.

🔐

Secure by default

Connects over WebSocket Secure (wss://) with username/password auth support, and never stores credentials outside your session.

🧮

Multi-format payloads

Publish and inspect payloads as plain text, JSON, Base64, or Hex — with instant conversion between formats.

🔎

Live filtering

Filter the incoming message log by topic or payload text instantly, without losing already-received packets.

📤

Export anywhere

Copy or download your captured session as JSON, Base64, or Hex for further analysis or bug reports.

🌗

Dark & light themes

A distraction-free dark theme by default, with a one-click light mode toggle that's remembered across visits.

📱

Fully responsive

Every panel reflows cleanly on mobile — no horizontal scrolling, no clipped controls.

Walkthrough

How this MQTT viewer works

Four steps from opening this page to watching live broker traffic.

01

Enter your broker's WebSocket URL

Use a wss:// or ws:// endpoint — most brokers expose this on a path such as /mqtt alongside their normal TCP port.

02

Connect with your credentials

Pick the protocol version, optionally add a username, password, and Last Will, then connect.

03

Subscribe to a topic filter

Use exact topics or wildcards like sensors/+/temperature to watch exactly the traffic you care about.

04

Inspect, export, and publish

Click any message for full packet detail, export the whole session, or publish your own test messages back to the broker.

Guide

What is MQTT, and why do you need a viewer for it?

MQTT is a lightweight publish-subscribe messaging protocol built for constrained devices and unreliable networks, which is exactly why it powers so much of the connected-device world today. Instead of two systems talking directly, every client connects to a central broker. Publishers send messages to a topic, and any client subscribed to that topic — including with wildcards like + for a single level or # for everything below a level — receives the message almost instantly. That simplicity is the whole point: a battery-powered sensor can push a two-byte temperature reading without the overhead that heavier protocols like HTTP demand.

The tricky part is that MQTT traffic is invisible until you have the right tool. A desktop application like MQTT Explorer is the classic way to browse a broker's topic tree, but it needs an install, and it isn't always convenient when you're troubleshooting from a shared machine or a phone. That's the gap an MQTT viewer like this one fills — it's a browser-based MQTT client that connects straight to your broker over a WebSocket, so you can subscribe, publish, and read live packets without downloading anything.

Because browsers can't open a raw TCP socket, a browser MQTT client always talks over WebSocket rather than the classic port 1883 or 8883. If your broker (Mosquitto, EMQX, HiveMQ, VerneMQ, or a managed IoT platform) already exposes a WebSocket listener — often on port 8083, 8084, 8883, or 8884 with a path like /mqtt — you can point this viewer straight at it. If it doesn't yet, enabling a WebSocket listener alongside your existing TCP listener is usually a small configuration change on the broker side.

Understanding MQTT usage patterns helps explain what to look for once you're connected. A typical IoT setup has dozens of devices publishing to structured topics such as site/floor2/room9/temperature, with a dashboard or automation engine subscribed to a broad wildcard like site/#. Retained messages let a newly-connected subscriber immediately see the last known value on a topic instead of waiting for the next publish, which is why this viewer clearly flags retained packets in the message log. Quality of Service (QoS) then determines the delivery guarantee: QoS 0 fires and forgets, QoS 1 guarantees at-least-once delivery with possible duplicates, and QoS 2 guarantees exactly-once delivery at the cost of extra round trips.

MQTT v5, the newer revision of the protocol, adds several fields that a serious packet analyzer should expose rather than hide. Message expiry intervals let a broker discard stale messages automatically. Response topics and correlation data support request-response patterns over what is otherwise a one-way publish channel. User properties act like free-form HTTP headers, letting applications attach metadata without inventing a custom payload format. This viewer surfaces every one of those fields when you switch the connection to protocol version 5, so you can test v5-specific behavior instead of only the v3.1.1 basics.

Whether you're debugging a smart-home setup, validating firmware on an industrial sensor network, or simply learning how publish-subscribe messaging behaves, having a live, real-time window into broker traffic turns guesswork into observation. Connect, subscribe to a wildcard, and watch the topic tree fill in — that's usually the fastest way to understand a system you didn't build yourself.

FAQ

Frequently asked questions

An MQTT viewer like this one runs entirely in your browser over a WebSocket connection, so there is nothing to install. MQTT Explorer is a downloadable desktop application. Both let you subscribe to topics and inspect payloads, but a browser-based viewer is faster to use for a quick check of live broker traffic.

Yes. Selecting protocol version 5 enables MQTT v5 fields including session expiry interval, message expiry interval, response topic, correlation data, and custom user properties on both the connection and individual published messages.

Browsers cannot open raw TCP sockets for security reasons, so any browser-based MQTT viewer needs the broker to expose a WebSocket or Secure WebSocket listener, commonly on a path such as /mqtt. If your broker only listens on port 1883 or 8883, you will need to enable a WebSocket listener alongside it, or connect through a WebSocket-to-TCP bridge.

Debugging more than MQTT?

Explore the rest of the toolkit for networking and developer diagnostics.