---
title: "Go MQTT Örneği: Bağlanma, Yayınlama ve Abonelik | ConnectMQ"
description: "Eclipse Paho Go ile Go MQTT istemci örneği: ücretsiz broker.connectmq.com ve ConnectMQ’ya güvenli TLS bağlantısı için kopyala-yapıştır kod."
url: "https://connectmq.com/tr/kod-ornekleri/go/"
language: "tr"
---

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](https://github.com/eclipse/paho.mqtt.golang)

Kurulum

`go get github.com/eclipse/paho.mqtt.golang`

[**Kaynak kod GitHub’da**`mqtt-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](https://github.com/connectmq/mqtt-code-samples/tree/main/go)

## 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](https://connectmq.com/tr/herkese-acik-mqtt-broker/)

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

[Ücretsiz başlayın](https://app.connectmq.com/signup) [Fiyatlandırmayı görün](https://connectmq.com/tr/fiyatlandirma/)

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.

## Diğer kod örnekleri

[

### Python

paho-mqtt ile Python’u bir MQTT broker’a bağlayın.

Örneği görüntüle](https://connectmq.com/tr/kod-ornekleri/python/)[

### Node.js

MQTT.js ile Node.js’i bir MQTT broker’a bağlayın.

Örneği görüntüle](https://connectmq.com/tr/kod-ornekleri/nodejs/)[

### ESP32

Arduino PubSubClient kütüphanesiyle bir ESP32’yi Wi-Fi üzerinden MQTT broker’a bağlayın.

Örneği görüntüle](https://connectmq.com/tr/kod-ornekleri/esp32/)[

### CLI (mosquitto)

mosquitto\_pub ve mosquitto\_sub ile komut satırından yayın yapın ve abone olun.

Örneği görüntüle](https://connectmq.com/tr/kod-ornekleri/cli/)[

### Java

Eclipse Paho Java istemcisiyle Java’yı bir MQTT broker’a bağlayın.

Örneği görüntüle](https://connectmq.com/tr/kod-ornekleri/java/)[

### C# (.NET)

MQTTnet ile C# ve .NET’i bir MQTT broker’a bağlayın.

Örneği görüntüle](https://connectmq.com/tr/kod-ornekleri/csharp/)[

### Rust

rumqttc crate’iyle Rust’ı bir MQTT broker’a bağlayın.

Örneği görüntüle](https://connectmq.com/tr/kod-ornekleri/rust/)[

### Dart (Flutter)

mqtt\_client paketiyle Dart ve Flutter uygulamalarını bir MQTT broker’a bağlayın.

Örneği görüntüle](https://connectmq.com/tr/kod-ornekleri/dart-flutter/)[

### Swift / Kotlin

Yerel iOS (Swift) ve Android (Kotlin) uygulamalarını bir MQTT broker’a bağlayın.

Örneği görüntüle](https://connectmq.com/tr/kod-ornekleri/swift-kotlin/)[

### Home Assistant

Home Assistant’ı bir MQTT broker’a bağlayın ve MQTT mesajlarını sensörlere dönüştürün.

Örneği görüntüle](https://connectmq.com/tr/kod-ornekleri/home-assistant/)[

### Node-RED

İçe aktarılabilir bir akışla Node-RED’i bir MQTT broker’a bağlayın.

Örneği görüntüle](https://connectmq.com/tr/kod-ornekleri/node-red/)

[Tüm kod örnekleri](https://connectmq.com/tr/kod-ornekleri/)

### Ü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](https://connectmq.com/tr/herkese-acik-mqtt-broker/)

### 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](https://app.connectmq.com/signup)

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

[Hemen başlayın](https://app.connectmq.com/signup) [Fiyatları görün](https://connectmq.com/tr/fiyatlandirma/)

## Makaleler

[Tüm yazılar](https://connectmq.com/tr/blog/)

IoT Eğitimleri

### [ESP32 MQTT Bağlantısı: Arduino IDE ile Sensör Verisi Yayınlayın ve LED Kontrol Edin](https://connectmq.com/tr/blog/esp32-mqtt-baglantisi/)

Bir ESP32'yi Arduino IDE ve PubSubClient ile bir MQTT broker'a bağlayın, JSON sıcaklık ölçümleri yayınlayın, kart üzerindeki LED'i komut satırından kontrol edin ve portal kimlik bilgileriyle TLS'e geçin.

23 Ağustos 20268 dk okuma

IoT Eğitimleri

### [Test İçin Ücretsiz Public MQTT Broker: broker.connectmq.com'a Dakikalar İçinde Bağlanın](https://connectmq.com/tr/blog/ucretsiz-public-mqtt-broker/)

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.

20 Eylül 20266 dk okuma

IoT Eğitimleri

### [WebSocket Üzerinden MQTT: MQTT.js ile Tarayıcıyı MQTT Broker'a Bağlayın](https://connectmq.com/tr/blog/websocket-uzerinden-mqtt/)

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.

29 Eylül 20267 dk okuma
