Kod örnekleri

Go MQTT örneği

Eclipse Paho Go istemcisiyle Go’yu 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.

Kütüphane
Eclipse Paho Go
Kurulum
go get github.com/eclipse/paho.mqtt.golang
Kaynak kod GitHub’damqtt-code-samples/goÇ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.

main.go
package main

import (
	"fmt"
	"time"

	mqtt "github.com/eclipse/paho.mqtt.golang"
)

func main() {
	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)
	opts := mqtt.NewClientOptions().AddBroker("tcp://broker.connectmq.com:1883")
	// Her istemcinin benzersiz bir client ID’si olmalı
	opts.SetClientID(fmt.Sprintf("go-%d", time.Now().UnixNano()))
	// Bağlantı koparsa otomatik olarak yeniden bağlan
	opts.SetAutoReconnect(true)
	// Bağlantı kurulduğunda çalışır
	opts.SetOnConnectHandler(func(c mqtt.Client) {
		// Sıcaklık topic’ine abone ol
		c.Subscribe(topic, 1, func(_ mqtt.Client, m mqtt.Message) {
			fmt.Printf("%s: %s\n", m.Topic(), m.Payload())
		})
	})

	client := mqtt.NewClient(opts)
	if t := client.Connect(); t.Wait() && t.Error() != nil {
		panic(t.Error())
	}
	// JSON formatında bir ölçüm yayınla
	client.Publish(topic, 1, false, `{"temperature":21.5}`).Wait()
	// İstemciyi çalışır durumda tut
	select {}
}

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

main.go
package main

import (
	"crypto/tls"
	"fmt"
	"time"

	mqtt "github.com/eclipse/paho.mqtt.golang"
)

func main() {
	topic := "your-project/sensors/temperature"

	// 8883 portundan özel ConnectMQ broker’ınıza bağlan
	opts := mqtt.NewClientOptions().AddBroker("ssl://YOUR_BROKER_HOST:8883")
	// ConnectMQ panelinizdeki kullanıcı adı ve parola
	opts.SetUsername("YOUR_USERNAME")
	opts.SetPassword("YOUR_PASSWORD")
	// TLS: broker sertifikasını sistemin CA deposu doğrular
	opts.SetTLSConfig(&tls.Config{MinVersion: tls.VersionTLS12})
	// Her istemcinin benzersiz bir client ID’si olmalı
	opts.SetClientID(fmt.Sprintf("go-%d", time.Now().UnixNano()))
	// Bağlantı koparsa otomatik olarak yeniden bağlan
	opts.SetAutoReconnect(true)
	// Bağlantı kurulduğunda çalışır
	opts.SetOnConnectHandler(func(c mqtt.Client) {
		// Sıcaklık topic’ine abone ol
		c.Subscribe(topic, 1, func(_ mqtt.Client, m mqtt.Message) {
			fmt.Printf("%s: %s\n", m.Topic(), m.Payload())
		})
	})

	client := mqtt.NewClient(opts)
	if t := client.Connect(); t.Wait() && t.Error() != nil {
		panic(t.Error())
	}
	// JSON formatında bir ölçüm yayınla
	client.Publish(topic, 1, false, `{"temperature":21.5}`).Wait()
	// İstemciyi çalışır durumda tut
	select {}
}

Go MQTT SSS

Go bir MQTT broker’a nasıl bağlanır?

Eclipse Paho Go 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.

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

Go 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