IoT Eğitimleri

Test İçin Ücretsiz Public MQTT Broker: broker.connectmq.com'a Dakikalar İçinde Bağlanın

broker.connectmq.com, test ve öğrenme için ücretsiz bir public MQTT broker'dır. Portlar, anonim erişim kuralları, limitler ve CLI, Python, Node.js ile tarayıcı için kopyala-yapıştır örnekler bu yazıda.

Ücretsiz test amaçlı public MQTT broker broker.connectmq.com üzerinden mesajlaşan dizüstü bilgisayar ve IoT sensörleri
Bunu kendi MQTT broker’ınızda çalıştırınFree planla özel, yönetilen bir MQTT broker alın ve hazır kod örnekleriyle başlayın.
Ücretsiz deneyin Kod örnekleri Kart gerekmez

Ücretsiz bir public MQTT broker, MQTT'yi denemenin en hızlı yoludur: hesap yok, kurulum yok; yalnızca bir hostname ve bir port. Bu eğitimde broker.connectmq.com'a bağlanacak, anonim public alanının kurallarını ve limitlerini öğrenecek, Mosquitto CLI, Python, Node.js ve tarayıcı ile çalışan örnekler çalıştıracaksınız. Sonunda özel bir broker'a geçme zamanının tam olarak ne zaman geldiğini bileceksiniz.

Protokole yeniyseniz önce MQTT Broker Nedir? yazısıyla başlayın, uygulamalı kısım için buraya dönün.

Ücretsiz Public MQTT Broker Nedir?

Public MQTT broker, internetteki herkesin kimlik bilgisi olmadan bağlanabildiği bir broker'dır. Öğrenme, demolar, hızlı prototipler ve client kodunun hata ayıklaması için tasarlanmıştır. MQTT 3.1.1 ve MQTT 5.0 konuşan gerçek bir broker elde edersiniz; ancak onu aynı anda test yapan herkesle paylaşırsınız.

Bu paylaşımın önemli bir sonucu vardır: Public alanda yayınladığınız her şeyi herkes okuyabilir. Onu herkese açık bir yazı tahtası gibi düşünün. "Hello world", sensör simülasyonları ve protokol denemeleri için mükemmeldir; parolalar, kişisel veriler veya üretim trafiği için ise tamamen yanlış bir yerdir.

broker.connectmq.com Bağlantı Bilgileri

ConnectMQ public broker'ı dört uç noktada dinler. Client'ınıza ve ağınıza uyanı seçin.

Protokol Port URL Tipik kullanım
MQTT (TCP) 1883 mqtt://broker.connectmq.com:1883 CLI araçları, mikrodenetleyiciler, hızlı testler
TLS üzerinden MQTT 8883 mqtts://broker.connectmq.com:8883 Sunuculardan ve cihazlardan şifreli bağlantılar
WebSocket 8083 ws://broker.connectmq.com:8083/mqtt Yerel web denemeleri
Güvenli WebSocket 8084 wss://broker.connectmq.com:8084/mqtt Tarayıcılar ve HTTPS sayfaları

8883 ve 8084 portları Let's Encrypt sertifikası kullanır; bu nedenle standart işletim sistemi CA paketleri onu ek dosya gerektirmeden doğrular. Ağınız alışılmadık portları engelliyorsa, 8084 üzerindeki WSS çoğu zaman en kolay yoldur, çünkü çoğu proxy'ye sıradan HTTPS benzeri trafik gibi görünür.

Anonim Erişim Kuralları

Kullanıcı adı veya parolaya ihtiyacınız yok. Üç basit kural geçerlidir:

  1. Boş olmayan bir client ID kullanın. Kullanıcı adı ve parola olmadan, ancak demo-7f3a91 gibi bir client ID ile bağlanın. Boş client ID reddedilir. Benzersiz olmasına dikkat edin: MQTT spesifikasyonuna göre aynı ID ile kurulan ikinci bağlantı oturumu devralır ve ilk client'ın bağlantısı kesilir.
  2. Benzersiz bir topic öneki kullanın. Her şeyi kimsenin tahmin edemeyeceği bir önek altına koyun; örneğin connectmq/demo/<your-random-id>/.... Bu, diğer test edenlerle çakışmaları önler ve topic ağacınızı düzenli tutar.
  3. Her şeyin herkese açık olduğunu varsayın. Anonim client'lar paylaşımlı bir public alana düşer. Public client'lar yalnızca diğer public client'ların topic'lerini görür (ücretli kiracılardan izoledirler), ancak public alanın içinde herhangi bir client #'e abone olup mesajlarınızı okuyabilir.

Kullanışlı bir yöntem, bir kez rastgele bir ID üretip bunu hem client ID tabanı hem de topic öneki olarak yeniden kullanmaktır:

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

Public Alan Limitleri

Public alan test için cömerttir, ancak herkes için sağlıklı kalması adına bilinçli olarak sınırlandırılmıştır.

Limit Değer
Maksimum mesaj boyutu 64 KB
Yayın hızı Client başına saniyede 10 mesaj
Abonelikler Client başına 10
Topic derinliği En fazla 8 seviye
QoS seviyeleri 0, 1 ve 2
Retained message'lar Destekleniyor
Wildcard abonelikler (+, #) Destekleniyor
Shared subscription'lar ($share/{group}/{filter}) Destekleniyor
Session expiry En fazla 30 dakika

Bir kotayı aşarsanız MQTT 5 client'ları sessiz bir hata yerine 0x97 (Quota exceeded) gibi bir reason code alır; bu da hata ayıklamayı çok kolaylaştırır. Hangi QoS'u seçeceğinizden emin değil misiniz? MQTT QoS Seviyeleri yazısına bakın.

Mosquitto CLI ile Ücretsiz Public MQTT Broker'ı Deneyin

Eclipse Mosquitto komut satırı araçları, mesajların akışını görmenin en hızlı yoludur. İki terminal açın.

Terminal 1 — önekinize abone olun:

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

Terminal 2 — bir mesaj yayınlayın:

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

Terminal 1, topic'i ve ardından payload'ı yazdırır. Şifreli portu kullanmak için sisteminizin CA paketini ekleyin (yol, çoğu Linux dağıtımı için gösterilmiştir):

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

Windows veya macOS'ta bunun yerine --cafile ile bir PEM CA paketini gösterin (örneğin Git for Windows ile gelen paket). -V mqttv5 bayrağı client'ı MQTT 5.0'a geçirir.

Retained Message Demosu

Retained message broker tarafından saklanır ve o topic'in her yeni subscriber'ına anında iletilir. Cihaz durumu gibi "bilinen son durum" değerleri için idealdir.

# Retained bir durum yayınlayın
mosquitto_pub -h broker.connectmq.com -p 1883 -i $ID-pub -t "connectmq/demo/$ID/status" -m "online" -r -q 1

# Yepyeni bir subscriber, mesaj daha önce yayınlanmış olsa bile onu anında alır
mosquitto_sub -h broker.connectmq.com -p 1883 -i $ID-late -t "connectmq/demo/$ID/status" -v -C 1 -W 5

# Boş bir retained payload yayınlayarak retained mesajı temizleyin
mosquitto_pub -h broker.connectmq.com -p 1883 -i $ID-pub -t "connectmq/demo/$ID/status" -n -r

İşiniz bittiğinde retained test mesajlarını her zaman temizleyin; bu, public alanı temiz tutar.

Last Will and Testament Demosu

Last Will, client'ınızın bağlantısı beklenmedik şekilde koptuğunda broker'ın sizin adınıza yayınladığı mesajdır. Terminal 1'deki subscriber'ı çalışır halde bırakın, ardından will içeren bir "cihaz" başlatın:

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

Şimdi bu terminali veya süreci sonlandırın (pencereyi kapatmak işe yarar; temiz bir Ctrl+C bağlantı kesişi her client'ta will'i tetiklemeyebilir). Birkaç saniye içinde, keep-alive süresi dolduktan sonra, Terminal 1 şunu gösterir:

connectmq/demo/demo-7f3a91/status offline

Bu komutları rehberi yazarken broker.connectmq.com üzerinde doğruladık.

Python Örneği (paho-mqtt 2.x)

Client'ı pip install "paho-mqtt>=2.0" ile kurun. Aşağıdaki betik TLS üzerinden bağlanır, önekine abone olur ve bir ölçüm yayınlar.

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)  # sistem CA deposunu kullanır
client.on_connect = on_connect
client.on_message = on_message

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

Public alanda username_pw_set() çağrısına gerek olmadığına dikkat edin. Düz TCP için tls_set() satırını kaldırın ve 1883 portunu kullanın.

Node.js Örneği (mqtts ve wss üzerinden MQTT.js)

MQTT.js v5'i npm install mqtt ile kurun. Aynı kod TLS veya Güvenli WebSocket üzerinden çalışır; yalnızca URL değişir.

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

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

// Seçenek A: TLS üzerinden MQTT
const url = "mqtts://broker.connectmq.com:8883";
// Seçenek B: Güvenli WebSocket üzerinden MQTT
// 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));

WSS Üzerinden Tarayıcı Örneği

Tarayıcılar ham TCP soketleri açamaz, bu yüzden WebSocket üzerinden MQTT kullanırlar. HTTPS üzerinden sunulan sayfalar 8084 portunda wss:// kullanmak zorundadır. Aşağıdaki kodu sevdiğiniz araçla (Vite, webpack, esbuild) paketleyin:

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);
});

Yollara, portlara ve proxy'lere daha ayrıntılı bakmak için WebSocket üzerinden MQTT yazısını okuyun.

Ücretsiz Public MQTT Broker ve Özel Broker Karşılaştırması

Public broker bir deneme alanıdır (sandbox). Aşağıdakilerden herhangi biri geçerli olduğu anda özel bir broker'a geçin:

İhtiyacınız... Public broker app.connectmq.com üzerinde özel broker
Gizlilik Public alandaki herkes topic'lerinizi okuyabilir Kiracı topic'leri diğer kiracılardan ve public alandan izoledir
Kimlik doğrulama Anonim, yalnızca client ID Her broker için verilen kullanıcı adı, parola ve client ID
Mesaj boyutu 64 KB Serverless (Free) planında 256 KB, Serverless (Paid) planında 1 MB
Bağlantılar Test amaçlı En fazla 25 (Free), en fazla 1.000 (Paid) veya bir Dedicated küme
Araçlar Kendi client'larınız Tarayıcı içi MQTT client, canlı topic gezgini, dashboard ve alarm kuralları içeren portal

Public alanı aştığınızı gösteren tipik işaretler: gerçek müşteri veya cihaz verisi gönderiyorsunuz, başkalarının topic adlarınızı görmesini engellemek istiyorsunuz, bir cihaz filosu için kalıcı kimlik bilgilerine ihtiyacınız var ya da verileriniz üzerinde dashboard ve alarm istiyorsunuz. Geçiş büyük ölçüde bir yapılandırma değişikliğidir; aynı kodu koruyun, portaldan aldığınız kullanıcı adı, parola ve client ID'yi ekleyin:

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)

Canlıya geçmeden önce MQTT güvenliği en iyi uygulamaları yazımızı gözden geçirin.

ConnectMQ ile Başlayın

Verilerinizi gizli tutmaya hazır mısınız? app.connectmq.com üzerinde ücretsiz bir hesap oluşturun; Serverless (Free) planı kredi kartı gerektirmez. Bir plan seçin, bir broker oluşturun ve üretilen kullanıcı adını, parolayı ve client ID'yi kopyalayın. İlk özel mesajınız birkaç dakika uzağınızda.

Sık Sorulan Sorular

broker.connectmq.com gerçekten ücretsiz mi?

Evet. broker.connectmq.com'un public alanı test, öğrenme ve demolar için kayıt gerektirmeden ücretsiz kullanılabilir. Mesaj başına 64 KB ve client başına saniyede 10 mesaj gibi adil kullanım limitleri vardır.

Public MQTT broker için kullanıcı adı ve parola gerekiyor mu?

Hayır. Kimlik bilgisi olmadan, boş olmayan ve benzersiz bir client ID ile bağlanın. Boş client ID reddedilir.

Public bir MQTT broker'da başkaları mesajlarımı görebilir mi?

Evet. Public alanda yayınlanan her şey diğer tüm public client'lar tarafından okunabilir; bu nedenle benzersiz bir topic öneki kullanın ve asla kişisel veya hassas veri göndermeyin. Özel veriler için app.connectmq.com üzerinde bir broker oluşturun.

Public broker hangi MQTT sürümlerini ve portları destekliyor?

TCP 1883, TLS 8883, WebSocket 8083 ve Güvenli WebSocket 8084 (yol /mqtt) üzerinde MQTT 3.1.1 ve MQTT 5.0'ı destekler.

Ücretsiz public MQTT broker'ı üretimde kullanabilir miyim?

Üretim için tasarlanmamıştır. Gerçek her kurulum için kimlik bilgileri, kiracı izolasyonu ve daha yüksek limitler sunan özel bir ConnectMQ broker kullanın.

İlgili yazılar

Test, Betik ve Hata Ayıklama için En İyi MQTT CLI Araçları

mosquitto_pub/sub, MQTTX CLI, HiveMQ MQTT CLI, MQTT.js CLI, curl ve mqttui'nin uygulamalı karşılaştırması; betik yazma ve hata ayıklama için doğru aracı seçebilmeniz için aynı test broker.connectmq.com üzerinde çalıştırıldı.

7 dk okuma

Tüm yazılar →

Özel MQTT broker’ınız birkaç tık uzağınızda

Hesabınızı oluşturun, broker kimlik bilgilerinizi alın ve ilk cihazınızı bağlayın — kurulacak, yamalanacak ya da ölçeklendirilecek sunucu yok.