Kod örnekleri

Swift / Kotlin MQTT örneği

Yerel iOS (Swift) ve Android (Kotlin) uygulamalarını bir MQTT broker’a bağlayın. Ücretsiz herkese açık broker’da başlayın, ardından aynı kodu ConnectMQ üzerindeki güvenli, özel bir broker’a yönlendirin.

Kurulum
# iOS (Swift Package Manager): https://github.com/emqx/CocoaMQTT # Android (Gradle): implementation("com.hivemq:hivemq-mqtt-client:1.3.3")
Kaynak kod GitHub’damqtt-code-samples/swift-kotlinÇalıştırılmaya hazır örneklerin tamamını klonlayın. Yıldız ve pull request’lere açığız. GitHub'da görüntüle

1. Ücretsiz herkese açık broker’da deneyin

Hesap gerekmez: 1883 portundan broker.connectmq.com adresine bağlanın ve saniyeler içinde yayın yapmaya başlayın.

Swift (CocoaMQTT)
import CocoaMQTT

let topic = "your-project/sensors/temperature" // Benzersiz bir topic öneki kullan: herkese açık broker’ı herkes okuyabilir

// Ücretsiz herkese açık broker’a bağlan (hesap gerekmez) (Her istemcinin benzersiz bir client ID’si olmalı)
let mqtt = CocoaMQTT(clientID: "ios-" + UUID().uuidString, host: "broker.connectmq.com", port: 1883)
mqtt.keepAlive = 30

// Bağlantı kurulduğunda çalışır
mqtt.didConnectAck = { mqtt, _ in
    // Sıcaklık topic’ine abone ol
    mqtt.subscribe(topic, qos: .qos1)
    // JSON formatında bir ölçüm yayınla
    mqtt.publish(topic, withString: #"{"temperature":21.5}"#, qos: .qos1)
}
// Abone olunan topic’teki her mesaj için çalışır
mqtt.didReceiveMessage = { _, message, _ in
    print(message.topic, message.string ?? "")
}
_ = mqtt.connect()
Kotlin (HiveMQ MQTT Client)
import com.hivemq.client.mqtt.MqttGlobalPublishFilter
import com.hivemq.client.mqtt.datatypes.MqttQos
import com.hivemq.client.mqtt.mqtt5.Mqtt5Client
import java.util.UUID

fun main() {
    val topic = "your-project/sensors/temperature" // Benzersiz bir topic öneki kullan: herkese açık broker’ı herkes okuyabilir

    // Ücretsiz herkese açık broker’a bağlan (hesap gerekmez) (Her istemcinin benzersiz bir client ID’si olmalı)
    val client = Mqtt5Client.builder()
        .identifier("android-" + UUID.randomUUID())
        .serverHost("broker.connectmq.com")
        .serverPort(1883)
        .automaticReconnectWithDefaultConfig()
        .buildBlocking()
    client.connect()

    // Abone olunan topic’teki her mesaj için çalışır
    client.toAsync().publishes(MqttGlobalPublishFilter.ALL) { p ->
        println("${p.topic}: ${String(p.payloadAsBytes)}")
    }
    // Sıcaklık topic’ine abone ol
    client.subscribeWith().topicFilter(topic).qos(MqttQos.AT_LEAST_ONCE).send()
    // JSON formatında bir ölçüm yayınla
    client.publishWith().topic(topic).qos(MqttQos.AT_LEAST_ONCE)
        .payload("""{"temperature":21.5}""".toByteArray()).send()
}

Ücretsiz herkese açık MQTT broker

Herkese açık broker paylaşımlıdır: topic’lerinize herkes abone olabilir. Üzerinden asla parola, kişisel veri veya gizli bilgi göndermeyin.

Ücretsiz herkese açık MQTT broker hakkında

2. ConnectMQ ile canlıya geçin

Gerçek cihazlar için herkese açık broker yerine ConnectMQ üzerinde özel, sunucusuz bir MQTT broker kullanın: TLS şifreleme, her cihaz için kullanıcı adı ve parola ile topic bazlı erişim denetimi, tamamen yönetilen. Free planla başlayın — kart gerekmez.

YOUR_BROKER_HOST, YOUR_USERNAME ve YOUR_PASSWORD değerlerini ConnectMQ panelinizdeki bilgilerle değiştirin.

Swift (CocoaMQTT)
import CocoaMQTT

let topic = "your-project/sensors/temperature"

// 8883 portundan özel ConnectMQ broker’ınıza bağlan (Her istemcinin benzersiz bir client ID’si olmalı)
let mqtt = CocoaMQTT(clientID: "ios-" + UUID().uuidString, host: "YOUR_BROKER_HOST", port: 8883)
mqtt.keepAlive = 30
// ConnectMQ panelinizdeki kullanıcı adı ve parola
mqtt.username = "YOUR_USERNAME"
mqtt.password = "YOUR_PASSWORD"
// TLS: broker sertifikasını sistemin CA deposu doğrular
mqtt.enableSSL = true

// Bağlantı kurulduğunda çalışır
mqtt.didConnectAck = { mqtt, _ in
    // Sıcaklık topic’ine abone ol
    mqtt.subscribe(topic, qos: .qos1)
    // JSON formatında bir ölçüm yayınla
    mqtt.publish(topic, withString: #"{"temperature":21.5}"#, qos: .qos1)
}
// Abone olunan topic’teki her mesaj için çalışır
mqtt.didReceiveMessage = { _, message, _ in
    print(message.topic, message.string ?? "")
}
_ = mqtt.connect()
Kotlin (HiveMQ MQTT Client)
import com.hivemq.client.mqtt.MqttGlobalPublishFilter
import com.hivemq.client.mqtt.datatypes.MqttQos
import com.hivemq.client.mqtt.mqtt5.Mqtt5Client
import java.util.UUID

fun main() {
    val topic = "your-project/sensors/temperature"

    // 8883 portundan özel ConnectMQ broker’ınıza bağlan (Her istemcinin benzersiz bir client ID’si olmalı)
    val client = Mqtt5Client.builder()
        .identifier("android-" + UUID.randomUUID())
        .serverHost("YOUR_BROKER_HOST")
        .serverPort(8883)
        // TLS: broker sertifikasını sistemin CA deposu doğrular
        .sslWithDefaultConfig()
        // ConnectMQ panelinizdeki kullanıcı adı ve parola
        .simpleAuth().username("YOUR_USERNAME").password("YOUR_PASSWORD".toByteArray()).applySimpleAuth()
        .automaticReconnectWithDefaultConfig()
        .buildBlocking()
    client.connect()

    // Abone olunan topic’teki her mesaj için çalışır
    client.toAsync().publishes(MqttGlobalPublishFilter.ALL) { p ->
        println("${p.topic}: ${String(p.payloadAsBytes)}")
    }
    // Sıcaklık topic’ine abone ol
    client.subscribeWith().topicFilter(topic).qos(MqttQos.AT_LEAST_ONCE).send()
    // JSON formatında bir ölçüm yayınla
    client.publishWith().topic(topic).qos(MqttQos.AT_LEAST_ONCE)
        .payload("""{"temperature":21.5}""".toByteArray()).send()
}

Swift / Kotlin MQTT SSS

Swift / Kotlin bir MQTT broker’a nasıl bağlanır?

CocoaMQTT (iOS) · HiveMQ MQTT Client (Android) kurun, broker sunucusuna 1883 portundan (TLS ile 8883) bağlanın, ardından bir topic’e abone olup aynı topic’e mesaj yayınlayın. Bu sayfadaki örnekler ücretsiz herkese açık broker.connectmq.com’a ve özel bir ConnectMQ broker’ına bağlanır.

Swift / Kotlin testleri için ücretsiz bir MQTT broker var mı?

Evet. broker.connectmq.com, hesap gerektirmeyen ücretsiz ve herkese açık bir MQTT broker’dır. Topic’lerini herkes okuyabildiği için yalnızca testlerde kullanın ve benzersiz bir topic öneki seçin.

Swift / Kotlin MQTT bağlantısı nasıl güvenli hale getirilir?

ConnectMQ panelinizden aldığınız kullanıcı adı ve parolayla 8883 portu üzerinden TLS ile bağlanın; herkese açık broker yerine her cihaza kendi kimlik bilgilerini ve topic izinlerini verin.

Ücretsiz herkese açık MQTT broker

Her örneği broker.connectmq.com üzerinde test edin — kayıt gerekmez; MQTT 3.1.1 ve 5, TCP, TLS ve WebSocket desteklenir.

Ücretsiz herkese açık MQTT broker hakkında

Canlı ortam için güvenli, sunucusuz MQTT

Gerçek cihazlara geçme zamanı geldiğinde aynı kodu TLS ve cihaz başına kimlik bilgileriyle özel, tamamen yönetilen bir ConnectMQ broker’ında çalıştırın.

Ücretsiz başlayın

Ö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.

WebSocket Üzerinden MQTT: MQTT.js ile Tarayıcıyı MQTT Broker'a Bağlayın

Tarayıcılar ham TCP soketleri açamaz; bu yüzden web uygulamaları MQTT'yi WebSocket üzerinden konuşur. broker.connectmq.com'a bağlanan çalışan bir tarayıcı client'ı ve bir Node.js client'ı geliştirin, en sık görülen bağlantı hatalarını nasıl düzelteceğinizi öğrenin.

7 dk okuma