Bir MQTT broker'ı telefondan test etmenin en hızlı yolu hiçbir uygulama gerektirmez: Android'de Chrome'da ya da iOS'ta Safari'de online MQTT istemcisini açın, güvenli WebSocket (wss) ile bağlanın, abone olun ve publish edin. Daha derin testler için — 1883'te ham TCP, 8883'te TLS, arka plan davranışı — yerel bir MQTT uygulaması veya cihaz üzerinde bir terminal kullanın. Bu rehber her yaklaşımı ve yalnızca mobilde ortaya çıkan ağ tuzaklarını ele alıyor.
Neden telefondan test etmeli?
Ofis Wi-Fi'ına bağlı dizüstünüz, kullanıcılarınızın bulunduğu yer değildir. Mobil test, masaüstü testin yanıtlayamayacağı soruları yanıtlar:
- Broker yalnızca ofis IP'nizden değil, mobil ağlardan gelen bağlantıları da kabul ediyor mu?
- Operatör NAT'ı ve boşta kalma zaman aşımları sessiz bir bağlantıyı birkaç dakika sonra koparıyor mu?
- Uygulamanızın bağlantısı ekran kilidi, uygulama değiştirme ve ağ geçişi (Wi-Fi → 4G/5G) sonrasında ayakta kalıyor mu?
- Sertifikalar, masaüstünüzden farklı olabilen telefonun güven deposunda doğrulanıyor mu?
Seçenek 1 — WSS üzerinden tarayıcı
Mobil tarayıcılar WebSocket'i destekler; bu yüzden MQTT over WebSockets masaüstündekiyle aynı şekilde çalışır.
- Telefonda testmqtt.com/client adresini açın.
- Protokolü WSS olarak bırakın. Kendi broker'ınız için Custom broker… seçin; host olarak
broker.connectmq.com, port8084, pathmqttve test kullanıcınızın bilgilerini girin. testmqtt/phone-4c21/#gibi benzersiz bir topic'e abone olun vetestmqtt/phone-4c21/hellotopic'ine publish edin.
Küçük klavyede yazmamak için bağlantıyı dizüstünde hazırlayıp telefonda açın (kendinize gönderin veya QR koda dönüştürün):
https://testmqtt.com/client?url=wss://broker.connectmq.com:8084/mqtt&topic=testmqtt/phone-4c21/%23Ardından dizüstünden publish edin ve telefonun mesajı almasını izleyin — bu, masaüstü bir istemciden broker üzerinden mobil ağa kadar uzanan tüm yolu kanıtlar:
mosquitto_pub -h broker.connectmq.com -p 1883 \
-t testmqtt/phone-4c21/hello -m "from laptop" -q 1Telefonu Wi-Fi'dan mobil veriye geçirip tekrarlayın. Birinde çalışıp diğerinde çalışmıyorsa sorun broker'da değil, ağdadır. Masaüstü için adım adım sürüm tarayıcınızdan MQTT broker testi yazısında.
Seçenek 2 — Yerel MQTT uygulamaları
Yerel uygulamalar gerçek TCP ve TLS soketleri açar; yani cihazlarınızın kullandığı portların aynısını test eder. İki uygulama mağazasında da çok sayıda genel amaçlı MQTT istemcisi ve dashboard uygulaması var — Android'de MyMQTT, MQTT Dash ve IoT MQTT Panel gibi; iOS'ta MQTTool ve IoT MQTT Panel gibi uygulamalar. Erişilebilirlik ve özellikler değişebilir; mağaza sayfasını kontrol edin ve şunlara izin veren uygulamaları tercih edin:
| Özellik | Test için neden önemli |
|---|---|
| TCP ve TLS (8883) | Cihazlarınızın gerçekten kullandığı portu test etmek |
| Özel CA / sertifika seçenekleri | Özel CA'lar ve istemci sertifikaları |
| Kullanıcı adı / parola | Kimlik doğrulamalı broker'lar ve ACL kontrolleri |
| MQTT 3.1.1 / 5 seçimi | Cihaz firmware'inizle eşleşmek |
| Wildcard ile abonelik | Bir cihazın tüm alt ağacını izlemek |
| Retain ve QoS seçenekleri | Gerçek cihaz davranışını yeniden üretmek |
ACL'leri test topic'leriyle sınırlı özel bir test kullanıcısı kullanın — mobil uygulamalar kimlik bilgilerini genellikle cihazda saklar.
Seçenek 3 — Telefonda bir terminal
Android'de Termux, Mosquitto komut satırı istemcileriyle birlikte bir Linux ortamı sunar:
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"Aynı komutlar TLS için -p 8883 ve --capath ya da --cafile ile de çalışır (cihazdaki bir CA paketini gösterin). iOS'ta terminal uygulamaları daha sınırlıdır; iPhone'da betik çalıştırmak için yerel bir uygulama ya da tarayıcı genellikle daha basittir. CLI çalıştığında mosquitto_pub ve mosquitto_sub örnekleri yazısındaki her şey telefonda da geçerlidir.
Kendi uygulamanızı test etmek: emülatörler ve simülatörler
Geliştirdiğiniz uygulama bağlanamıyorsa sorunun kodda mı yoksa ağda mı olduğunu bulun:
- Android emülatörü: Emülatör içindeki
localhostemülatörün kendisidir. Geliştirme makinenizde çalışan bir broker'a ulaşmak için10.0.2.2kullanın. - iOS simülatörü: Mac'in ağ yığınını paylaşır; dolayısıyla
localhostMac'teki broker'a ulaşır. Fiziksel bir iPhone ulaşamaz — Mac'in yerel ağ IP'sine ihtiyaç duyar. - Fiziksel cihazlar: Broker yalnızca
127.0.0.1'i değil yerel ağ arayüzünü dinlemelidir (listener tanımlanmamış Mosquitto 2.x yalnızca yerel bağlantıları kabul eder) ve host'un firewall'u porta izin vermelidir.
Platform kuralları da uygulamanızdaki düz metin bağlantıları engelleyebilir. Android'in ağ güvenliği yapılandırması HTTP tabanlı yığınlarda cleartext trafiği varsayılan olarak engeller; bu ws://'yi etkiler. iOS App Transport Security ise WebSocket'ler dahil URLSession tabanlı bağlantılara uygulanır. İstisna eklemek yerine wss:// veya TLS (8883) kullanın. Kütüphaneye özel kurulum Kotlin ile Android'de MQTT ve Swift ile iOS'ta MQTT yazılarında.
Mobil ağ tuzakları
| Belirti | Olası neden | Ne denenmeli |
|---|---|---|
| Wi-Fi'da çalışıyor, mobil veride zaman aşımı | Ağ 1883/8883 portlarını kısıtlıyor | Broker'ınız sunuyorsa 443'te WSS deneyin; operatör/MDM ile görüşün |
| Birkaç sessiz dakikadan sonra bağlantı kopuyor | Operatör NAT'ının boşta kalma zaman aşımı | Keep alive'ı zaman aşımının altına çekin (ör. 30–60 sn); bkz. NAT zaman aşımları |
| Ekran her kilitlendiğinde bağlantı kesiliyor | İşletim sistemi uygulamayı askıya alıyor | Beklenen durum; yeniden bağlanma + kalıcı oturumlara göre tasarlayın |
| Ağ değişiminde yeniden bağlanma dalgası | Handover sırasında IP adresi değişiyor | Backoff ile temiz yeniden bağlanma, aynı client ID |
Yalnızca telefondan Connection refused | Broker localhost'a bağlı veya firewall kuralı | 0.0.0.0'ı dinleyin, portu açın, başka bir makineden nc ile test edin |
| Telefonda sertifika hatası, masaüstünde sorun yok | Eksik ara sertifika veya özel CA | Zincirin tamamını sunun; CA'yı test cihazlarına yükleyin |
Laboratuvarda gerçekçi dengesiz ağ testleri için MQTT'yi mobil ağ koşullarında test etme yazısına bakın.
Beş dakikalık mobil test planı
- Wi-Fi'da telefon tarayıcısı: WSS ile bağlanın, abone olun, publish edin, mesajı alın.
- Aynı testi mobil veride yapın.
- Dizüstünden publish edip telefonda alın (ve tersi).
- Yerel uygulama veya Termux: gerçek kimlik bilgilerinizle TCP 1883 ve TLS 8883 üzerinden tekrarlayın.
- Bir aboneliği on dakika boşta bırakın; ayakta kalıp kalmadığını kontrol edin.
- Ekranı kilitleyin, ağı değiştirin, kilidi açın: uygulamanızın yeniden bağlandığını ve yeniden abone olduğunu doğrulayın.
Telefondan test birkaç dakika sürer ve hiçbir masaüstü testinin yakalamayacağı sorunları ortaya çıkarır: mobil veride engellenen portlar, NAT zaman aşımları, uykuya dalan uygulamalar ve yalnızca cihazın güven deposunda başarısız olan sertifika zincirleri. WSS ile mobil tarayıcıdan başlayın, ardından uygulamanızın bağlı olduğu portlar ve davranışlar için yerel bir istemciye geçin.
Sıkça sorulan sorular
Bir MQTT broker'ı telefondan test etmenin en hızlı yolu nedir?
Telefonun tarayıcısında testmqtt.com/client gibi bir online MQTT istemcisi açın ve güvenli WebSocket (wss, genellikle 8084 veya 443 portu) ile bağlanın. Android'de Chrome ve iOS'ta Safari'de aynı şekilde çalışır, uygulama kurmanız gerekmez.
Telefonum dizüstü bilgisayarımda çalışan MQTT broker'a neden ulaşamıyor?
Telefondaki localhost telefonun kendisidir. Dizüstünün yerel ağ IP adresini kullanın; ikisinin aynı ağda olduğundan, broker'ın yalnızca 127.0.0.1'i değil tüm arayüzleri dinlediğinden ve dizüstünün firewall'unun porta izin verdiğinden emin olun.
MQTT neden Wi-Fi'da çalışıp mobil veride çalışmıyor?
Bazı mobil ve misafir ağları 1883 ve 8883 gibi web dışı portları kısıtlar; operatör NAT'ı da boşta kalan bağlantıları hızla düşürebilir. Varsa 443 portunu veya 443 üzerinden WebSocket'i deneyin ve ağın boşta kalma süresinden kısa bir keep alive kullanın.

