Um einen MQTT-Broker vom Handy aus zu testen, brauchst du für den schnellsten Weg gar keine App: Öffne den Online-MQTT-Client in Chrome auf Android oder Safari auf iOS, verbinde dich über Secure WebSockets (wss), abonniere und publiziere. Für alles Tiefere – rohes TCP auf 1883, TLS auf 8883, Verhalten im Hintergrund – nimmst du eine native MQTT-App oder ein Terminal auf dem Gerät. Dieser Guide behandelt jeden Ansatz und die Netzwerkfallen, die nur mobil auftauchen.
Warum überhaupt vom Handy testen?
Dein Laptop im Büro-WLAN ist nicht dort, wo deine Nutzer sind. Ein mobiler Test beantwortet Fragen, die ein Desktop-Test nicht beantworten kann:
- Akzeptiert der Broker Verbindungen aus Mobilfunknetzen, nicht nur von deiner Büro-IP?
- Kappen Carrier-NAT und Idle-Timeouts eine ruhige Verbindung nach ein paar Minuten?
- Übersteht die Verbindung deiner App Bildschirmsperre, App-Wechsel und Netzwechsel (WLAN → 4G/5G)?
- Werden Zertifikate im Trust Store des Handys validiert, der sich von deinem Desktop unterscheiden kann?
Option 1 – Der Browser über WSS
Mobile Browser unterstützen WebSockets, also funktioniert MQTT over WebSockets genau wie auf dem Desktop.
- Öffne auf dem Handy testmqtt.com/client.
- Lass das Protokoll auf WSS. Für deinen eigenen Broker wählst du Custom broker… und gibst Host
broker.connectmq.com, Port8084, Pfadmqttund die Zugangsdaten deines Testbenutzers ein. - Abonniere ein eindeutiges Topic wie
testmqtt/phone-4c21/#und publiziere auftestmqtt/phone-4c21/hello.
Um nicht auf der kleinen Tastatur zu tippen, baust du den Link am Laptop und öffnest ihn auf dem Handy (schick ihn dir selbst oder mach einen QR-Code daraus):
https://testmqtt.com/client?url=wss://broker.connectmq.com:8084/mqtt&topic=testmqtt/phone-4c21/%23Dann publizierst du vom Laptop und siehst zu, wie das Handy empfängt – das beweist den gesamten Pfad von einem Desktop-Client über den Broker bis ins Mobilfunknetz:
mosquitto_pub -h broker.connectmq.com -p 1883 \
-t testmqtt/phone-4c21/hello -m "from laptop" -q 1Schalte das Handy von WLAN auf mobile Daten und wiederhole den Test. Klappt es im einen Netz und im anderen nicht, hast du ein Netzwerkproblem, kein Broker-Problem. Die Schritt-für-Schritt-Version für den Desktop findest du unter MQTT-Broker im Browser testen.
Option 2 – Native MQTT-Apps
Native Apps öffnen echte TCP- und TLS-Sockets und testen damit dieselben Ports wie deine Geräte. Beide App Stores bieten mehrere allgemeine MQTT-Clients und Dashboard-Apps – auf Android etwa MyMQTT, MQTT Dash und IoT MQTT Panel, auf iOS etwa MQTTool und IoT MQTT Panel. Verfügbarkeit und Funktionen ändern sich, prüfe also den Store-Eintrag und bevorzuge Apps, die Folgendes können:
| Funktion | Warum sie beim Testen zählt |
|---|---|
| TCP und TLS (8883) | Den Port testen, den deine Geräte wirklich nutzen |
| Eigene CA- / Zertifikatsoptionen | Private CAs und Client-Zertifikate |
| Benutzername / Passwort | Authentifizierte Broker und ACL-Prüfungen |
| Wahl zwischen MQTT 3.1.1 / 5 | Zur Firmware deiner Geräte passend |
| Abos mit Wildcards | Einen ganzen Geräte-Teilbaum beobachten |
| Retain- und QoS-Optionen | Echtes Geräteverhalten nachstellen |
Nutze einen eigenen Testbenutzer mit ACLs, die auf Test-Topics beschränkt sind – mobile Apps speichern Zugangsdaten meist auf dem Gerät.
Option 3 – Ein Terminal auf dem Handy
Auf Android bietet dir Termux eine Linux-Umgebung mit den Mosquitto-Kommandozeilen-Clients:
pkg install mosquitto
mosquitto_sub -h broker.connectmq.com -p 1883 -t 'testmqtt/phone-4c21/#' -v &
mosquitto_pub -h broker.connectmq.com -p 1883 -t testmqtt/phone-4c21/hello -m "from termux"Dieselben Befehle funktionieren mit -p 8883 und --capath oder --cafile für TLS (zeige auf ein CA-Bundle, das auf dem Gerät liegt). Auf iOS sind Terminal-Apps eingeschränkter; zum Skripten auf dem iPhone sind eine native App oder der Browser meist einfacher. Sobald die CLI läuft, gilt alles aus mosquitto_pub- und mosquitto_sub-Beispiele auch auf dem Handy.
Die eigene App testen: Emulatoren und Simulatoren
Wenn sich die App, die du baust, nicht verbindet, finde heraus, ob es am Code oder am Netzwerk liegt:
- Android-Emulator:
localhostim Emulator ist der Emulator selbst. Mit10.0.2.2erreichst du einen Broker auf deinem Entwicklungsrechner. - iOS-Simulator: teilt sich den Netzwerkstack des Macs,
localhosterreicht also einen Broker auf dem Mac. Ein echtes iPhone nicht – es braucht die LAN-IP des Macs. - Echte Geräte: Der Broker muss auf dem LAN-Interface lauschen, nicht nur auf
127.0.0.1(Mosquitto 2.x ohne konfigurierten Listener akzeptiert nur lokale Verbindungen), und die Host-Firewall muss den Port freigeben.
Plattformregeln können Klartextverbindungen in deiner App ebenfalls blockieren. Die Network Security Configuration von Android blockiert Cleartext-Traffic standardmäßig für HTTP-basierte Stacks, was ws:// betrifft; App Transport Security auf iOS gilt für URLSession-basierte Verbindungen, inklusive WebSockets. Nutze wss:// oder TLS (8883), statt Ausnahmen einzutragen. Die bibliotheksspezifische Einrichtung findest du in MQTT auf Android mit Kotlin und MQTT auf iOS mit Swift.
Netzwerkfallen im Mobilfunk
| Symptom | Wahrscheinliche Ursache | Was du versuchen kannst |
|---|---|---|
| Klappt im WLAN, Timeout über mobile Daten | Netz beschränkt Ports 1883/8883 | WSS auf 443 testen, falls dein Broker es anbietet; beim Provider/MDM nachfragen |
| Verbindung bricht nach ein paar ruhigen Minuten ab | Idle-Timeout des Carrier-NAT | Keep-Alive unter dem Timeout (z. B. 30–60 s); siehe NAT-Timeouts |
| Trennt sich bei jeder Bildschirmsperre | Betriebssystem suspendiert die App | Erwartet; auf Reconnect + persistente Sessions auslegen |
| Reconnect-Welle beim Netzwechsel | IP-Adresse ändert sich beim Handover | Sauberer Reconnect mit Backoff, gleiche Client-ID |
Connection refused nur vom Handy aus | Broker an localhost gebunden oder Firewall-Regel | Auf 0.0.0.0 lauschen, Port öffnen, mit nc von einem anderen Rechner testen |
| Zertifikatsfehler auf dem Handy, Desktop ok | Fehlendes Intermediate oder private CA | Komplette Kette ausliefern; CA auf Testgeräten installieren |
Für realistische Tests mit wackeligem Netz im Labor siehe MQTT unter Mobilfunkbedingungen testen.
Ein mobiler Testplan in fünf Minuten
- Handy-Browser im WLAN: über WSS verbinden, abonnieren, publizieren, empfangen.
- Derselbe Test über mobile Daten.
- Vom Laptop publizieren, auf dem Handy empfangen (und umgekehrt).
- Native App oder Termux: auf TCP 1883 und TLS 8883 mit deinen echten Zugangsdaten wiederholen.
- Ein Abo zehn Minuten ruhen lassen; prüfen, ob es überlebt.
- Bildschirm sperren, Netz wechseln, entsperren: bestätigen, dass deine App sich neu verbindet und neu abonniert.
Ein Test vom Handy dauert Minuten und findet Probleme, die kein Desktop-Test zeigt: gesperrte Ports über mobile Daten, NAT-Timeouts, schlafende Apps und Zertifikatsketten, die nur am Trust Store des Geräts scheitern. Starte im mobilen Browser über WSS und wechsle dann zu einem nativen Client für die Ports und das Verhalten, auf die deine App angewiesen ist.
Häufig gestellte Fragen
Wie teste ich einen MQTT-Broker am schnellsten vom Handy aus?
Öffne einen Online-MQTT-Client wie testmqtt.com/client im Browser des Handys und verbinde dich über Secure WebSockets (wss, oft Port 8084 oder 443). Das funktioniert in Chrome auf Android genauso wie in Safari auf iOS und braucht keine App-Installation.
Warum erreicht mein Handy den MQTT-Broker auf meinem Laptop nicht?
localhost auf dem Handy ist das Handy selbst. Nutze die LAN-IP des Laptops, stelle sicher, dass beide im selben Netz sind, dass der Broker auf allen Interfaces lauscht statt nur auf 127.0.0.1 und dass die Firewall des Laptops den Port freigibt.
Warum funktioniert MQTT im WLAN, aber nicht über mobile Daten?
Manche Mobilfunk- und Gastnetze beschränken Nicht-Web-Ports wie 1883 und 8883, und Carrier-NAT kann inaktive Verbindungen schnell kappen. Teste Port 443 oder WebSockets über 443, falls verfügbar, und nutze einen Keep-Alive, der kürzer ist als der Idle-Timeout des Netzes.

