IoT-Tutorials

Kostenloser öffentlicher MQTT-Broker zum Testen: In Minuten mit broker.connectmq.com verbinden

broker.connectmq.com ist ein kostenloser öffentlicher MQTT-Broker zum Testen und Lernen. Hier finden Sie die Ports, die Regeln für den anonymen Zugang, die Limits und Beispiele zum Kopieren für CLI, Python, Node.js und den Browser.

Laptop und IoT-Sensoren tauschen Nachrichten über broker.connectmq.com aus, einen kostenlosen öffentlichen MQTT-Broker zum Testen
Probieren Sie es auf Ihrem eigenen MQTT-Broker ausHolen Sie sich im Free-Tarif einen privaten, verwalteten MQTT-Broker und starten Sie mit fertigen Codebeispielen.
Kostenlos testen Codebeispiele Keine Kreditkarte erforderlich

Ein kostenloser öffentlicher MQTT-Broker ist der schnellste Weg, MQTT auszuprobieren: kein Konto, keine Installation, nur ein Hostname und ein Port. In diesem Tutorial verbinden Sie sich mit broker.connectmq.com, lernen die Regeln und Limits für den anonymen Zugang kennen und führen funktionierende Beispiele mit der Mosquitto-CLI, Python, Node.js und im Browser aus. Am Ende wissen Sie genau, wann es Zeit für einen privaten Broker ist.

Wenn das Protokoll neu für Sie ist, beginnen Sie mit Was ist ein MQTT-Broker? und kehren Sie für den Praxisteil hierher zurück.

Was ist ein kostenloser öffentlicher MQTT-Broker?

Ein öffentlicher MQTT-Broker ist ein Broker, mit dem sich jeder im Internet ohne Zugangsdaten verbinden kann. Er ist für Lernzwecke, Demos, schnelle Prototypen und das Debuggen von Client-Code gedacht. Sie erhalten einen echten Broker, der MQTT 3.1.1 und MQTT 5.0 spricht, teilen ihn aber mit allen anderen, die gerade ebenfalls testen.

Dieses Teilen hat eine wichtige Konsequenz: Alles, was Sie auf dem öffentlichen MQTT-Broker veröffentlichen, kann jeder lesen. Behandeln Sie ihn wie ein öffentliches Whiteboard. Er ist perfekt für „Hello World“, Sensorsimulationen und Protokollexperimente – und völlig ungeeignet für Passwörter, personenbezogene Daten im Sinne der DSGVO, Maschinendaten aus der Produktion oder anderen Produktivverkehr.

Verbindungsdaten von broker.connectmq.com

Der öffentliche MQTT-Broker von ConnectMQ lauscht auf vier Endpunkten. Wählen Sie den, der zu Ihrem Client und Netzwerk passt.

Protokoll Port URL Typischer Einsatz
MQTT (TCP) 1883 mqtt://broker.connectmq.com:1883 CLI-Tools, Mikrocontroller, schnelle Tests
MQTT über TLS 8883 mqtts://broker.connectmq.com:8883 Verschlüsselte Verbindungen von Servern und Geräten
WebSocket 8083 ws://broker.connectmq.com:8083/mqtt Lokale Web-Experimente
Secure WebSocket 8084 wss://broker.connectmq.com:8084/mqtt Browser und HTTPS-Seiten

Die Ports 8883 und 8084 verwenden ein Let's-Encrypt-Zertifikat, sodass die üblichen CA-Bundles des Betriebssystems es ohne zusätzliche Dateien verifizieren. Blockiert Ihr Netzwerk ungewöhnliche Ports, ist WSS auf 8084 oft der einfachste Weg, weil der Datenverkehr für die meisten Proxys wie normaler HTTPS-Verkehr aussieht.

Regeln für den anonymen Zugang

Sie brauchen weder Benutzernamen noch Passwort. Es gelten drei einfache Regeln:

  1. Verwenden Sie eine nicht leere Client ID. Verbinden Sie sich ohne Benutzername und Passwort, aber mit einer Client ID wie demo-7f3a91. Eine leere Client ID wird abgelehnt. Wählen Sie sie eindeutig – laut MQTT-Spezifikation übernimmt eine zweite Verbindung mit derselben ID die Session, und der erste Client wird getrennt.
  2. Verwenden Sie ein eindeutiges Topic-Präfix. Legen Sie alles unter einem Präfix ab, das niemand sonst errät, zum Beispiel connectmq/demo/<your-random-id>/.... So vermeiden Sie Kollisionen mit anderen Testern und halten Ihren Topic-Baum übersichtlich.
  3. Gehen Sie davon aus, dass alles öffentlich ist. Anonyme Clients landen in einem gemeinsamen, öffentlichen Namensraum. Öffentliche Clients sehen nur die Topics anderer öffentlicher Clients – von zahlenden Mandanten sind sie isoliert –, doch auf dem öffentlichen MQTT-Broker kann jeder Client # abonnieren und Ihre Nachrichten lesen.

Ein praktischer Trick: Erzeugen Sie einmal eine Zufalls-ID und verwenden Sie sie sowohl als Basis für die Client ID als auch als Topic-Präfix:

export ID=demo-$(openssl rand -hex 3)
echo $ID   # z. B. demo-7f3a91

Limits des öffentlichen MQTT-Brokers

Der öffentliche MQTT-Broker ist zum Testen großzügig bemessen, aber bewusst begrenzt, damit er für alle stabil bleibt.

Limit Wert
Maximale Nachrichtengröße 64 KB
Publish-Rate 10 Nachrichten pro Sekunde und Client
Abonnements 10 pro Client
Topic-Tiefe Maximal 8 Ebenen
QoS-Stufen 0, 1 und 2
Retained Messages Unterstützt
Wildcard-Abonnements (+, #) Unterstützt
Shared Subscriptions ($share/{group}/{filter}) Unterstützt
Session Expiry Bis zu 30 Minuten

Die Grenze von 8 Topic-Ebenen ist vor allem für Industrie-4.0-Prototypen relevant: Wer eine ISA-95-Hierarchie für einen Unified Namespace (UNS) testet, etwa werk-stuttgart/montage/linie-1/zelle-3/temperatur, ersetzt am besten die Unternehmensebene durch das Präfix connectmq/demo/<id>, damit der Pfad hineinpasst. Echte Werksdaten gehören auch hier auf einen privaten Broker.

Überschreiten Sie eine Quota, erhalten MQTT-5-Clients einen Reason Code wie 0x97 (Quota exceeded) statt eines stillen Fehlschlags – das erleichtert das Debugging enorm. Unsicher, welche QoS Sie wählen sollen? Lesen Sie MQTT QoS-Stufen erklärt.

Den kostenlosen öffentlichen MQTT-Broker mit der Mosquitto-CLI testen

Mit den Kommandozeilen-Tools von Eclipse Mosquitto sehen Sie am schnellsten, wie Nachrichten fließen. Öffnen Sie zwei Terminals.

Terminal 1 – Ihr Präfix abonnieren:

mosquitto_sub -h broker.connectmq.com -p 1883 -i $ID-sub -t "connectmq/demo/$ID/#" -v

Terminal 2 – eine Nachricht veröffentlichen:

mosquitto_pub -h broker.connectmq.com -p 1883 -i $ID-pub -t "connectmq/demo/$ID/temperature" -m '{"value": 22.5, "unit": "C"}'

Terminal 1 gibt das Topic und danach die Payload aus. Für den verschlüsselten Port geben Sie das CA-Bundle Ihres Systems an (der Pfad gilt für die meisten Linux-Distributionen):

mosquitto_pub -h broker.connectmq.com -p 8883 --capath /etc/ssl/certs -i $ID-tls -t "connectmq/demo/$ID/tls" -m "hello over TLS" -V mqttv5

Unter Windows oder macOS verweisen Sie stattdessen mit --cafile auf ein PEM-CA-Bundle (zum Beispiel das von Git for Windows mitgelieferte). Das Flag -V mqttv5 schaltet den Client auf MQTT 5.0 um.

Demo: Retained Message

Eine Retained Message wird vom Broker gespeichert und sofort an jeden neuen Subscriber dieses Topics ausgeliefert. Sie eignet sich ideal für Werte wie den „letzten bekannten Zustand“, etwa den Gerätestatus.

# Einen Retained-Status veröffentlichen
mosquitto_pub -h broker.connectmq.com -p 1883 -i $ID-pub -t "connectmq/demo/$ID/status" -m "online" -r -q 1

# Ein ganz neuer Subscriber erhält ihn sofort, obwohl er vorher veröffentlicht wurde
mosquitto_sub -h broker.connectmq.com -p 1883 -i $ID-late -t "connectmq/demo/$ID/status" -v -C 1 -W 5

# Die Retained Message durch eine leere Retained-Payload löschen
mosquitto_pub -h broker.connectmq.com -p 1883 -i $ID-pub -t "connectmq/demo/$ID/status" -n -r

Löschen Sie Retained-Testnachrichten immer, wenn Sie fertig sind – so bleibt der öffentliche MQTT-Broker für alle übersichtlich.

Demo: Last Will and Testament

Ein Last Will ist eine Nachricht, die der Broker in Ihrem Namen veröffentlicht, wenn Ihr Client unerwartet die Verbindung verliert. Lassen Sie den Subscriber aus Terminal 1 laufen und starten Sie ein „Gerät“ mit Last Will:

mosquitto_sub -h broker.connectmq.com -p 1883 -i $ID-device -t "connectmq/demo/$ID/cmd" -k 5 --will-topic "connectmq/demo/$ID/status" --will-payload "offline" --will-qos 1

Beenden Sie nun dieses Terminal oder den Prozess (das Schließen des Fensters funktioniert; ein sauberes Trennen per Strg+C löst den Last Will nicht in jedem Client aus). Innerhalb weniger Sekunden – nach Ablauf des Keep-Alive – zeigt Terminal 1:

connectmq/demo/demo-7f3a91/status offline

Wir haben diese Befehle beim Schreiben dieses Leitfadens gegen broker.connectmq.com getestet.

Python-Beispiel (paho-mqtt 2.x)

Installieren Sie den Client mit pip install "paho-mqtt>=2.0". Das folgende Skript verbindet sich per TLS, abonniert sein Präfix und veröffentlicht einen Messwert.

import json
import ssl
import uuid
import paho.mqtt.client as mqtt

DEVICE_ID = f"demo-{uuid.uuid4().hex[:6]}"
PREFIX = f"connectmq/demo/{DEVICE_ID}"

def on_connect(client, userdata, flags, reason_code, properties):
    print(f"Connected: {reason_code}")
    client.subscribe(f"{PREFIX}/#", qos=1)
    client.publish(f"{PREFIX}/temperature", json.dumps({"value": 21.8}), qos=1)

def on_message(client, userdata, msg):
    print(f"{msg.topic} -> {msg.payload.decode()}")

client = mqtt.Client(
    mqtt.CallbackAPIVersion.VERSION2,
    client_id=DEVICE_ID,
    protocol=mqtt.MQTTv5,
)
client.tls_set(cert_reqs=ssl.CERT_REQUIRED)  # nutzt den CA-Speicher des Systems
client.on_connect = on_connect
client.on_message = on_message

client.connect("broker.connectmq.com", 8883, keepalive=30)
client.loop_forever()

Auf dem öffentlichen MQTT-Broker ist kein Aufruf von username_pw_set() nötig. Für unverschlüsseltes TCP entfernen Sie tls_set() und verwenden Port 1883.

Node.js-Beispiel (MQTT.js über mqtts und wss)

Installieren Sie MQTT.js v5 mit npm install mqtt. Derselbe Code funktioniert über TLS oder Secure WebSocket – nur die URL ändert sich.

import mqtt from "mqtt";
import { randomBytes } from "node:crypto";

const clientId = `demo-${randomBytes(3).toString("hex")}`;
const prefix = `connectmq/demo/${clientId}`;

// Option A: MQTT über TLS
const url = "mqtts://broker.connectmq.com:8883";
// Option B: MQTT über Secure WebSocket
// const url = "wss://broker.connectmq.com:8084/mqtt";

const client = mqtt.connect(url, { clientId, protocolVersion: 5 });

client.on("connect", () => {
  console.log("Connected as", clientId);
  client.subscribe(`${prefix}/#`, { qos: 1 });
  client.publish(`${prefix}/humidity`, JSON.stringify({ value: 48 }), { qos: 1 });
});

client.on("message", (topic, payload) => {
  console.log(topic, payload.toString());
});

client.on("error", (err) => console.error(err.message));

Browser-Beispiel über WSS

Browser können keine rohen TCP-Sockets öffnen und nutzen daher MQTT über WebSocket. Seiten, die über HTTPS ausgeliefert werden, müssen wss:// auf Port 8084 verwenden. Bündeln Sie den folgenden Code mit dem Tool Ihrer Wahl (Vite, webpack, esbuild):

import mqtt from "mqtt";

const clientId = "web-" + Math.random().toString(16).slice(2, 8);
const prefix = `connectmq/demo/${clientId}`;

const client = mqtt.connect("wss://broker.connectmq.com:8084/mqtt", {
  clientId,
  protocolVersion: 5,
});

client.on("connect", () => {
  client.subscribe(`${prefix}/#`);
  client.publish(`${prefix}/hello`, "Hello from the browser");
});

client.on("message", (topic, payload) => {
  const line = document.createElement("div");
  line.textContent = `${topic}: ${payload.toString()}`;
  document.body.appendChild(line);
});

Mehr zu Pfaden, Ports und Proxys lesen Sie in MQTT über WebSocket.

Kostenloser öffentlicher MQTT-Broker vs. privater Broker

Der öffentliche MQTT-Broker ist eine Sandbox für Tests und Prototypen. Wechseln Sie zu einem privaten Broker, sobald einer dieser Punkte zutrifft:

Sie benötigen … Öffentlicher MQTT-Broker Privater Broker auf app.connectmq.com
Vertraulichkeit Jeder auf dem öffentlichen MQTT-Broker kann Ihre Topics lesen Mandanten-Topics sind von anderen Mandanten und vom öffentlichen MQTT-Broker isoliert
Authentifizierung Anonym, nur Client ID Benutzername, Passwort und Client ID pro Broker
Nachrichtengröße 64 KB 256 KB bei Serverless (Free), 1 MB bei Serverless (Paid)
Verbindungen Zum Testen Bis zu 25 (Free), bis zu 1.000 (Paid) oder ein Dedicated-Cluster
Werkzeuge Ihre eigenen Clients Portal mit MQTT-Client im Browser, Live-Topic-Explorer, Dashboard und Alarmregeln

Typische Anzeichen, dass Sie dem öffentlichen MQTT-Broker entwachsen sind: Sie senden echte Kunden- oder Gerätedaten, Sie möchten verhindern, dass andere Ihre Topic-Namen sehen, Sie brauchen stabile Zugangsdaten für eine Geräteflotte, oder Sie wünschen sich ein Dashboard und Alarme für Ihre Daten. Der Wechsel ist im Wesentlichen eine Konfigurationsänderung – behalten Sie denselben Code und ergänzen Sie Benutzername, Passwort und Client ID aus dem Portal:

client = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2, client_id="YOUR_CLIENT_ID", protocol=mqtt.MQTTv5)
client.username_pw_set("YOUR_USERNAME", "YOUR_PASSWORD")
client.tls_set()
client.connect("broker.connectmq.com", 8883)

Bevor Sie live gehen, arbeiten Sie unsere Best Practices zur MQTT-Sicherheit durch.

Starten Sie mit ConnectMQ

Bereit, Ihre Daten privat zu halten? Legen Sie ein kostenloses Konto auf app.connectmq.com an – der Plan Serverless (Free) benötigt keine Kreditkarte. Wählen Sie einen Plan, legen Sie einen Broker an und kopieren Sie den generierten Benutzernamen, das Passwort und die Client ID. Ihre erste private Nachricht ist nur wenige Minuten entfernt.

Häufig gestellte Fragen

Ist broker.connectmq.com wirklich kostenlos?

Ja. Der öffentliche MQTT-Broker broker.connectmq.com kann zum Testen, Lernen und für Demos kostenlos und ohne Registrierung genutzt werden. Es gelten Fair-Use-Limits wie 64 KB pro Nachricht und 10 Nachrichten pro Sekunde und Client.

Brauche ich für den öffentlichen MQTT-Broker Benutzername und Passwort?

Nein. Verbinden Sie sich ohne Zugangsdaten und mit einer nicht leeren, eindeutigen Client ID. Eine leere Client ID wird abgelehnt.

Können andere meine Nachrichten auf einem öffentlichen MQTT-Broker sehen?

Ja. Alles, was auf dem öffentlichen MQTT-Broker veröffentlicht wird, kann jeder andere öffentliche Client lesen. Verwenden Sie daher ein eindeutiges Topic-Präfix und senden Sie niemals personenbezogene oder vertrauliche Daten. Für private Daten legen Sie einen Broker auf app.connectmq.com an.

Welche MQTT-Versionen und Ports unterstützt der öffentliche MQTT-Broker?

Er unterstützt MQTT 3.1.1 und MQTT 5.0 über TCP 1883, TLS 8883, WebSocket 8083 und Secure WebSocket 8084 (Pfad /mqtt).

Kann ich den kostenlosen öffentlichen MQTT-Broker in der Produktion einsetzen?

Dafür ist er nicht ausgelegt. Verwenden Sie für jeden echten Einsatz einen privaten ConnectMQ-Broker mit Zugangsdaten, Mandantenisolation und höheren Limits.

Verwandte Artikel

Die besten MQTT-CLI-Tools zum Testen, Skripten und Debuggen

Ein praxisnaher Vergleich von mosquitto_pub/sub, MQTTX CLI, HiveMQ MQTT CLI, der MQTT.js-CLI, curl und mqttui – mit demselben Test gegen broker.connectmq.com, damit Sie das richtige Tool zum Skripten und Debuggen wählen.

8 Min. Lesezeit

Alle Artikel →

Ihr privater MQTT-Broker ist nur wenige Klicks entfernt

Konto anlegen, Broker-Zugangsdaten erhalten und das erste Gerät verbinden — ohne Server, die installiert, gepatcht oder skaliert werden müssen.