MQTT broker

Fast, secure, and free public MQTT broker with MQTT 5.0 support, private namespace, WSS, ACLs, and rich API.

Also check out MQTT Board - our MQTT 5.0 client tool for debugging and testing.

Login to start managing MQTT sessions for free or register via email

Perform and scale better with MQTT 5.0

The number of sensors in the IoT and M2M systems is skyrocketing. The flespi team has been working hard to add the MQTT 5.0 specification support into the broker to enhance the productivity and scalability of your projects. Most MQTT 5.0 features already implemented! Let us know if you need something that we are missing.

Be the boss in the isolated MQTT namespace

Each flespi user operates in an isolated MQTT topics namespace. It's only you who chooses how to name messages topics and what kind of hierarchy to use.

Operate the broker via REST API

Manage sessions, publish messages, read and delete retained messages, and access logs via a flexible REST API.

Fine-tune access to topics

We take security and privacy seriously. To make sure each subscriber gets the data they need but cannot cause harm by their negligence or accidental actions, we devised a flexible access control system. It allows creating tokens with different ACLs to finely customize what different parties can access within a topic.

Use shared subscriptions for easy load-balancing

When incoming messages start heavily bombarding the handler of your business app, you might lose data. We don’t want that! flespi offers shared subscriptions to spread the load across multiple service workers in a smart manner.

Never hit the speed limit

It’ frustrating when your technological partner can’t live up to your needs. We don’t want to be a bottleneck as your business grows. flespi MQTT broker can receive one million messages per second and send three million messages per second. Impressive, huh?

Stay safe with SSL-protected MQTTS and WSS connections

We care about the security of the messages you entrust to our MQTT broker. That’s why we support MQTT over SSL and MQTT over Secure WebSocket. Also, you can create an isolated namespace with any name (except /flespi).

Configuration
Host mqtt.flespi.io
Port MQTT over TCP: 8883 (SSL) or 1883 (non-SSL)

MQTT over WebSockets: 443 (SSL) or 80 (non-SSL)
MQTT version 3.1, 3.1.1, 5.0
QoS supported QoS 0, QoS 1, QoS 2
REST API Yes, it's possible to publish messages, read and delete retained messages, manage connected and offline sessions, and access broker logs via MQTT broker REST API
ACL Yes, topics access is adjustable via token ACL setting
Shared subscriptions Yes, implemented according to MQTT 5.0 specification. Allows load-balancing published messages between multiple subscribers in the same shared group
Retained messages Yes, with limited storage according to restrictions
Logs MQTT broker logs available via either REST API or MQTT
Authorization
Username Password ClientID
your flespi token not used any
flespi MQTT broker specifics
Feature Explanation
"timestamp" user property (publish) If not set by the publisher flespi broker will attach this property to the published message with the current UNIX time value. This property is used to sort which message will be the last in retained storage.
Wildcard deletion of retained messages If you publish a message with an empty payload to a topic that contains wildcards ("#" or "+"), flespi will perform bulk deletion of retained messages that match the published topic mask.
Shared group sessions storage If the message arrives at the shared group but no sessions are online, for clean=false or non-zero expiration timeout sessions that were previously subscribed to this shared group, the message will sit in the storage until such sessions connect again. As shared groups are mostly used for load balancing, this feature prevents any data loss when all such sessions are offline for whatever reason.
MQTT limitations Broker accepts messages with maximum payload size of 60MB.

Maximum outgoing (pending to client) messages queue size is 256MB and maximum QoS=1 unacknowledged messages size is 100MB.

If using multiple topics per one subscribe/unsubscribe request, broker accepts maximum 16 topics in it.
"modified_since" user property (subscribe) If valid value is specified, the subscriber will receive only newer retained messages than the given UNIX timestamp.

5 easy steps to start

1
Create free account on flespi.io
2
Create an authorization token
3
Connect to mqtt.flespi.io via TCP or WebSocket
4
Authorize with flespi token as user name
5
Subscribe/publish to any topic
You get the following for free
100 MQTT sessions
active simulteneously
100 MB storage
for persistent MQTT sessions
100 MB storage
for retained messages

Login to start managing MQTT sessions for free or register via email  Should you need to exceed the above numbers, switch to commercial use

MQTT client

You may play with flespi MQTT broker with this mqtt.js based MQTT client or try full-featured MQTT client tool. Feel free to open multiple instances simulateniously — e.g. you may publish messages from one tab and subscribe to them from other tab. You may also subscribe to everything, e.g. # — this token provides read-only access to a couple of GPS trackers installed on vehicles that periodicaly update their positions.

Connection


Publish message


Subscription

MQTT 5.0 compliance checklist
Feature Description Status
Shared groups Load-balancing; delivering messages to a single subscriber from the group done
Message expiry interval Limiting the messages TTL (for both queued and retained) done
Response topic Subscriber response to received topic (executing commands and getting response) done
Receive maximum Client limits the number of inflight messages sent by the broker done
Maximum packet size Client limits the max size of messages sent by the broker done
Topic alias Replacing a topic name with the 2-byte index (to save traffic) done
Will delay interval Delaying the generation of a will message done
Subscription identifier Client specifies own index upon subscription; broker specifies according to which subscription the message is sent to the client done