MQTT Topic Tester
Online MQTT topic tester with + and # wildcard validation and subscription filter matching, ideal for protocol learning, topic design review, and message routing debugging.
Use + for single-level wildcard and # for multi-level wildcard (must appear at the end)
One topic per line. Test topics represent publish topics and cannot include + or #
Common Patterns
Results
Enter subscription pattern and test topics to start
Wildcard Reference
+Single-level Wildcard
+ matches exactly one topic level and cannot span across levels.
#Multi-level Wildcard
# matches all remaining levels from its position and must be the last token.
MQTT Topic Pattern Guide
What is an MQTT topic filter?
This tool is used for offline MQTT subscription filter testing to verify + and # matching behavior and optimize topic naming and message routing.
Matching Rules
- + matches one level only, for example sensor/+/temp matches sensor/room1/temp.
- # matches all remaining levels from its position and can only appear at the end.
- Publish topics must be exact names and cannot include + or # wildcards.
- Topics are case-sensitive, so Home/temp and home/temp are different topics.
Design Recommendations
- Split levels by business domain, device, and metric, such as factory/line01/device01/temp.
- Keep naming conventions consistent (lowercase and hyphen style) across teams.
- Reserve intermediate levels for bulk subscriptions to reduce future refactoring cost.
FAQ
What is the key difference between + and #?
+ matches exactly one level, while # matches multiple levels and must be the final token.
Why are wildcards not allowed in test topics?
Because test topics represent publish topic names, and MQTT publish topics cannot contain wildcards.
How can I quickly identify mismatch causes?
Use the red mismatch chips and the reason line to tell whether the issue is hierarchy length or segment text mismatch.