Doğru test için ücretsiz MQTT broker neyi test ettiğinize bağlıdır. İlk "kodum bağlanıyor mu?" kontrolü için broker.connectmq.com gibi paylaşımlı bir endpoint veya public bir sandbox, kayıt gerektirmeden saniyeler içinde çalışır. Otomatik testler için broker'ı yerelde veya CI'da çalıştırın. Kimlik bilgileri, ACL'ler veya gerçekçi yük işin içine girdiğinde özel bir broker kullanın — ücretsiz planlar mevcuttur, sonraki adım ise özel bir yönetilen instance'tır.
Bu rehber seçenekleri türlerine göre gruplar, her birinin neye iyi gelip neye gelmediğini anlatır ve her biri için bir dakikalık bir kontrol sunar.
Dört tür ücretsiz test broker'ı
| Tür | Örnekler | Kayıt | İzolasyon | En uygun kullanım |
|---|---|---|---|---|
| Yönetilen bir servisin paylaşımlı endpoint'i | broker.connectmq.com | Hayır | Paylaşımlı | Hızlı bağlantı ve kod kontrolleri |
| Topluluk public sandbox'ı | test.mosquitto.org, broker.hivemq.com, broker.emqx.io | Hayır | Paylaşımlı, anonim | Demolar, eğitimler, protokol denemeleri |
| Yönetilen servisin ücretsiz planı | HiveMQ Cloud, EMQX Serverless ve diğerleri | Evet | Özel | Düşük trafikle auth, TLS ve ACL testleri |
| Yerel / self-hosted | Docker'da Mosquitto, EMQX, NanoMQ | Hayır | Tamamen sizin | Unit, entegrasyon ve CI testleri |
Hiçbiri "en iyisi" değildir. Tipik bir proje iki ya da üçünü kullanır: ilk satırları yazarken paylaşımlı bir endpoint, CI'da yerel bir broker ve canlıya çıkmadan önce özel bir broker.
1. Paylaşımlı endpoint'ler ve public sandbox'lar
Bunlar için bir hostname'den başka bir şey gerekmez. "İstemci kodum doğru mu?" sorusunu yanıtlamanın en hızlı yoludur.
ConnectMQ paylaşımlı endpoint'i
broker.connectmq.com, yönetilen bir MQTT broker olan ConnectMQ'nun hızlı testler için sunduğu paylaşımlı endpoint'tir. Bilinen portlarda MQTT 3.1.1 ve MQTT 5 konuşur:
| Taşıma | Port | URL |
|---|---|---|
| TCP | 1883 | mqtt://broker.connectmq.com:1883 |
| TLS | 8883 | mqtts://broker.connectmq.com:8883 |
| WebSocket | 8083 | ws://broker.connectmq.com:8083/mqtt |
| Güvenli WebSocket | 8084 | wss://broker.connectmq.com:8084/mqtt |
Özel instance'ları çalıştıran servisle aynı olduğu için burada test ettiğiniz kod — TLS ve WebSocket ayarları dahil — daha sonra yalnızca hostname ve kimlik bilgilerini değiştirerek kendi broker'ınıza yönlendireceğiniz kodun ta kendisidir.
Topluluk public broker'ları
- test.mosquitto.org — Eclipse Mosquitto projesi tarafından işletilir. Şifresiz, TLS ve WebSocket portlarının yanı sıra istemci sertifikası ve kimlik doğrulama testleri için portlar sunar; sitede hepsi listelenir. Açıkça bir test sunucusudur, yavaş olabilir veya yeniden başlatılabilir.
- broker.hivemq.com — HiveMQ'nun public broker'ı; 1883'te TCP ve WebSocket desteği vardır. Tarayıcı demoları için kullanışlıdır.
- broker.emqx.io — EMQX'in public broker'ı; TCP, TLS, WebSocket ve güvenli WebSocket portları vardır.
Hepsi paylaşımlı ve anonimdir: topic'inizi tahmin eden veya wildcard ile abone olan herkes yayınladıklarınızı okuyabilir. Erişilebilirlik ve limitler işletmecilerin elindedir ve haber verilmeden değişebilir. Yan yana nasıl davrandıklarını görmek için public MQTT broker karşılaştırması yazısına bakın.
Bir dakikalık kontrol
mosquitto_sub -h broker.connectmq.com -p 1883 -t 'testmqtt/free-test/#' -vmosquitto_pub -h broker.connectmq.com -p 1883 -t 'testmqtt/free-test/hello' -m 'it works'Subscriber testmqtt/free-test/hello it works yazdırıyorsa ağ yolunuz, portunuz ve istemci araçlarınız sorunsuzdur. Başka bir public broker'ı denemek için hostname'i değiştirin. Elinizde terminal yok mu? Online MQTT istemcisini kullanın — doğrudan tarayıcıdan güvenli WebSocket ile bağlanır.
Ücretsiz bir broker'ı tarayıcınızda test edin
2. Yönetilen servislerin ücretsiz planları
Birçok yönetilen MQTT servisi ücretsiz bir plan veya ücretsiz kota sunar: kayıt olursunuz ve kendi kimlik bilgileriniz ve TLS ile özel bir broker alırsınız. HiveMQ Cloud ve EMQX Serverless bilinen örneklerdir; başkaları da vardır ve ayrıntılar (bağlantı sınırları, mesaj kotaları, kart istenip istenmediği) sağlayıcıya göre değişir ve zamanla güncellenir; bu yüzden güncel koşulları sağlayıcının sitesinden okuyun.
Ücretsiz planlar şunlar için iyidir:
- kullanıcı adı/parola ile kimlik doğrulamayı ve topic bazlı izinleri test etmek,
- gerçek bir sertifika zinciriyle TLS'i test etmek,
- birkaç cihazlı küçük bir prototip veya ev projesi.
Yük testleri (kotalar hızla tükenir) ve garanti gerektiren her şey için daha az uygundurlar. Prototip ürüne dönüştüğünde olağan sonraki adım, aynı serviste ücretli bir plan veya özel bir instance'tır; böylece istemci yapılandırması aynı kalır.
3. Docker'da veya CI'da yerel broker'lar
Otomatik testler için kendi başlattığınız bir broker, barındırılan her seçenekten iyidir: izoledir, kotası yoktur, çevrimdışı çalışır ve test bitince kaldırılır.
cat > mosquitto.conf <<'EOF'
listener 1883
allow_anonymous true
EOF
docker run --rm -p 1883:1883 -v "$PWD/mosquitto.conf:/mosquitto/config/mosquitto.conf" eclipse-mosquitto:2Mosquitto 2, bir listener yapılandırmadığınız sürece yalnızca localhost'u dinler ve anonim istemcileri reddeder; bu iki satırlık yapılandırma bu yüzden gereklidir. Daha kapsamlısını mosquitto.conf oluşturucu ile üretin ya da broker'ı test kodunuzdan Testcontainers ile başlatın.
Yerel broker'ların bir kör noktası vardır: gerçek bir internet yolunda olanları göstermezler — NAT zaman aşımları, cihazdan TLS, kurumsal ağdaki proxy'ler. Bunları uzak bir broker'a karşı en az bir testle birlikte kullanın.
Hangisini kullanmalısınız?
| Amacınız… | Kullanın |
|---|---|
| Yeni bir istemci kütüphanesinin bağlanıp publish ettiğini kontrol etmek | Paylaşımlı endpoint veya public sandbox |
| WebSocket üzerinden tarayıcı demosu göstermek | wss portu olan paylaşımlı endpoint veya public sandbox |
| CI'da unit ve entegrasyon testleri çalıştırmak | Docker / Testcontainers ile yerel broker |
| Login, ACL ve TLS sertifikalarını test etmek | Ücretsiz veya özel yönetilen broker ya da auth dosyalı yerel Mosquitto |
| Yük veya soak testi | Kontrolünüzdeki özel bir broker — asla public değil |
| Sahadaki gerçek bir cihazdan test etmek | Cihazın ağından erişilebilen uzak bir broker |
Asıl soru "public mi, özel mi?" ise public ve özel MQTT broker'lar yazısı konuyu derinleştiriyor; broker dizini de barındırılan ve self-hosted seçenekleri protokolleri ve portlarıyla listeliyor.
Kaçınılması gereken hatalar
- Genel topic'ler. Public bir broker'da
test/topicsize yabancıların mesajlarını gösterir ve testinizi karıştırır. Her zaman benzersiz bir önek kullanın. - Sabit client ID'ler. İki geliştirici aynı örneği
client_id="test"ile çalıştırırsa, biri bağlandığında broker diğerini düşürür. Client ID oluşturucuyu kullanın veya rastgele bir sonek ekleyin. - Retained duruma güvenmek. Paylaşımlı broker'larda diğer kullanıcılar retained mesajları ezebilir veya silebilir. Test çalıştırmaları arasında bunlara güvenmeyin.
- Sandbox'ta benchmark yapmak. Sonuçlar herkesin trafiğini yansıtır; ağır testler hız sınırlamasına veya engellenmeye yol açabilir.
- Test host'uyla production'a çıkmak. Broker URL'sini koda değil yapılandırmaya koyun; böylece test broker'ından production'a geçiş yalnızca bir yapılandırma değişikliği olur.
Ücretsiz broker'lar MQTT geliştirmenin ilk saatini sürtünmesiz hale getirir. Kodunuzun çalıştığını kanıtlamak için paylaşımlı bir endpoint veya public sandbox, testleri hızlı ve güvenilir tutmak için yerel bir broker, kimlik bilgileri, izinler veya gerçek trafik devreye girer girmez de özel bir broker kullanın.
Sıkça sorulan sorular
Test için public bir MQTT broker kullanmak güvenli mi?
Atılabilir test verileri için evet. Public bir broker'da genellikle herkes '#' dahil her topic'e abone olabilir; bu yüzden asla kimlik bilgisi, kişisel veri veya gerçek donanımı kontrol eden bir şey göndermeyin. Diğer kullanıcılarla çakışmamak için benzersiz topic adları kullanın.
CI pipeline'ları için en iyi ücretsiz MQTT broker hangisi?
Pipeline'ın içinde başlatılan bir broker; örneğin Docker service container olarak veya Testcontainers ile çalışan Mosquitto. İzoledir, saniyeler içinde başlar, hız limiti yoktur ve üçüncü taraf bir servisin ayakta olmasına bağlı değildir.
Public bir broker'da kimlik doğrulama ve ACL test edebilir miyim?
Genellikle anlamlı bir şekilde edemezsiniz. Public sandbox'lar çoğunlukla anonimdir; kullanıcı veya topic bazlı izin tanımlamanıza izin vermez. Özel bir broker kullanın: ücretsiz bir yönetilen plan, özel yönetilen bir broker veya parola ve ACL dosyası olan yerel bir Mosquitto.

