Bir VS Code MQTT eklentisi, IoT geliştirmenin bitmek bilmeyen pencere değiştirme derdini ortadan kaldırır: bir pencerede firmware, diğerinde masaüstü client, ikisinin arkasında bir yerde de terminal. Bu rehberde ConnectMQ eklentisiyle Visual Studio Code içinde MQTT kuracak, test payload'larını deponuzda dosya olarak düzenleyecek ve tekrarlanabilir CLI kontrolleri çalıştıran çalışma alanı görevleri ekleyeceksiniz. Tüm örnekler ücretsiz public broker broker.connectmq.com üzerinde gösterilmektedir.
MQTT'yi Neden Editöre Taşımalı?
Koddaki bir topic adını değiştirdiğinizde etkisini hemen görmek istersiniz. Bir JSON alanını düzelttiğinizde, düzeltmeyi sınayan bir test payload'u göndermek istersiniz. Bunu editör içinde yapmanın somut faydaları vardır:
- Daha kısa geri bildirim döngüsü. Düzenleyin, firmware'i yükleyin veya yeniden başlatın ve topic'i kodun yanındaki bir panelde izleyin.
- Payload'lar kodla birlikte yaşar. Test mesajları, ekip arkadaşlarınızın yeniden kullanıp inceleyebileceği sürümlenmiş dosyalara dönüşür.
- Kurulacak araç sayısı azalır. Ekibe yeni katılanlar eklentiyi ve çalışma alanı görevlerini alır, hemen hazır olur.
- Tutarlı bağlantı ayarları. Herkes aynı broker ayarlarıyla test eder; bu da "benim makinemde çalışıyor" türü topic hatalarını önler.
ConnectMQ VS Code Eklentisini Kurma
- Extensions görünümünü açın (
Ctrl+Shift+X, macOS'taCmd+Shift+X). - ConnectMQ araması yapın ve resmi eklentiyi kurun.
- Eklentiyi simgesinden veya Command Palette (
Ctrl+Shift+P) üzerinden adını yazarak açın.
Eklenti, VS Code'dan çıkmadan MQTT broker'larına bağlanmanızı, topic'lere subscribe olmanızı ve test payload'ları publish etmenizi sağlar. Herhangi bir standart MQTT broker ile çalışır. Etiketler sürümler arasında değişebilir; güncel arayüz için eklentinin Marketplace sayfası esas alınmalıdır.
Broker'a Bağlanma
Public test broker için şu değerlerle bir bağlantı oluşturun:
| Ayar | Public broker | Özel broker |
|---|---|---|
| Host | broker.connectmq.com |
Portaldaki broker host adresiniz |
| Port | 1883 (TCP) veya 8883 (TLS) | 8883 (TLS) |
| Client ID | Benzersiz ve boş olmayan herhangi bir değer, ör. vscode-7hq2 |
YOUR_CLIENT_ID |
| Kullanıcı adı / parola | Boş bırakın | YOUR_USERNAME / YOUR_PASSWORD |
| Protokol | MQTT 5.0 veya 3.1.1 | MQTT 5.0 veya 3.1.1 |
Testleriniz için connectmq/demo/7hq2/ gibi benzersiz bir topic öneki seçin. Public alan herkes tarafından okunabilir; bu yüzden oraya asla gizli bilgi veya gerçek müşteri verisi göndermeyin. Public limitler şunlardır: mesaj başına 64 KB, client başına saniyede 10 mesaj, client başına 10 subscription ve en fazla 8 topic seviyesi.
VS Code MQTT Eklentisinden Subscribe ve Publish
Bağlantı açıkken:
- Önekinizin altındaki her şeyi görmek için
connectmq/demo/7hq2/#topic'ine subscribe olun. connectmq/demo/7hq2/device1/cmdtopic'ine{"action": "blink", "times": 3}payload'uyla bir test mesajı gönderin.- Mesajın subscription görünümünüze ulaştığını doğrulayın, ardından cihazınızı veya servisinizi aynı topic'lere yönlendirin.
Editör içinde hızlanan tipik hata ayıklama adımları:
- Topic yazım hatası avı. Üst seviyeye
#ile subscribe olun ve gerçekten gelen topic'leri kodunuzdaki string'lerle karşılaştırın. - Retained durum kontrolü. Yeniden bağlanın ve hangi topic'lerin hemen bir değer gösterdiğine bakın; bunlar retained'dır.
- Komut testi. Uygulamanızın göndereceği komutun aynısını publish edin ve cihazın yanıt topic'ini izleyin.
Test Payload'larını Depoda Dosya Olarak Saklayın
Hangi client'tan publish ederseniz edin, referans test mesajlarını depoda saklayın. Basit bir düzen:
mqtt/
payloads/
cmd-blink.json
cmd-reboot.json
telemetry-normal.json
telemetry-out-of-range.json
README.md
Örnek mqtt/payloads/telemetry-out-of-range.json:
{
"deviceId": "device1",
"temperature": 142.7,
"humidity": -3,
"ts": 1760600000000
}
Bunun gibi uç durum payload'ları (imkânsız değerler, eksik alanlar, yanlış tipler), backend'inizdeki doğrulamayı test ederken ihtiyaç duyacağınız payload'lardır. Bunları dosya olarak tutmak incelenebilir olmalarını sağlar; VS Code da siz yazarken JSON sözdizimini doğrular.
Tekrarlanabilir CLI Kontrolleri için Çalışma Alanı Görevleri Ekleyin
Eklenti etkileşimli çalışma için idealdir. Tekrarlanabilir kontroller içinse mosquitto_pub ve mosquitto_sub komutlarını saran VS Code görevleri onu iyi tamamlar ve entegre terminalde çalışır. .vscode/tasks.json dosyasını oluşturun:
{
"version": "2.0.0",
"inputs": [
{
"id": "payloadFile",
"type": "pickString",
"description": "Payload to publish",
"options": [
"mqtt/payloads/cmd-blink.json",
"mqtt/payloads/telemetry-normal.json",
"mqtt/payloads/telemetry-out-of-range.json"
]
}
],
"tasks": [
{
"label": "MQTT: watch demo topics",
"type": "shell",
"command": "mosquitto_sub -h broker.connectmq.com -p 1883 -i vscode-watch-7hq2 -t 'connectmq/demo/7hq2/#' -v",
"isBackground": true,
"problemMatcher": []
},
{
"label": "MQTT: publish payload file",
"type": "shell",
"command": "mosquitto_pub -h broker.connectmq.com -p 1883 -i vscode-pub-7hq2 -t connectmq/demo/7hq2/device1/telemetry -q 1 -f ${input:payloadFile}",
"problemMatcher": []
},
{
"label": "MQTT: wait for one telemetry message",
"type": "shell",
"command": "mosquitto_sub -h broker.connectmq.com -p 1883 -i vscode-check-7hq2 -t connectmq/demo/7hq2/device1/telemetry -C 1 -W 15",
"problemMatcher": []
}
]
}
Görevleri Terminal > Run Task menüsünden çalıştırın. pickString girdisi hangi payload dosyasını göndereceğinizi seçmenizi sağlar; -f ise dosya içeriğini mesaj olarak publish eder. Son görev, 15 saniye içinde hiçbir şey gelmezse hatayla sonlanır; bu da firmware yükledikten sonra kullanışlı bir duman testidir. Daha fazla varyasyona ihtiyacınız varsa mosquitto_pub ve mosquitto_sub örneklerine göz atın. Bu görevler için Mosquitto client'larının kurulu olması gerekir; başka bir komut satırı client'ı tercih ediyorsanız MQTT CLI araçları yazısı alternatifleri karşılaştırır.
Pratik Bir Firmware İş Akışı
VS Code'da PlatformIO ile bir ESP32 cihazı geliştirirken her şey şöyle bir araya gelir:
- "watch demo topics" görevini başlatın (veya eklentide subscribe olun).
- Firmware'i derleyip yükleyin; seri monitörü başka bir panelde açın.
- Cihazın ilk telemetrisinin ve retained
statusmesajının göründüğünü izleyin. cmd-blink.jsondosyasını komut topic'ine publish edin; LED'i ve seri günlüğü izleyin.- Backend'inizin hatalı veriyi nasıl işlediğini görmek için
telemetry-out-of-range.jsondosyasını telemetri topic'ine publish edin.
Beş adımın tamamı editörden çıkmadan gerçekleşir. Cihaz tarafı için ESP32 MQTT eğitimi, bu topic düzenine uyan bir firmware sunar.
Çalışma Alanında Kimlik Bilgilerini Güvenle Yönetme
Broker parolalarını asla tasks.json veya payload dosyalarına commit etmeyin. Daha güvenli iki yöntem:
- Görevlerde ortam değişkenleri kullanın:
-u $MQTT_USER -P $MQTT_PASS(Windows PowerShell'de$env:MQTT_USER) ve bunları shell profilinizde veya.gitignoreile hariç tutulan yerel bir.envdosyasında tanımlayın. -uve-Psatırlarını içeren bir Mosquitto client yapılandırma dosyasını deponun dışında (~/.config/mosquitto_pub) tutun.
ConnectMQ üzerindeki özel bir broker için portal, broker'ı oluşturduğunuzda kullanıcı adını, parolayı ve client ID'yi üretir; client ID'ler bu kimlik bilgilerine bağlıdır, bu yüzden hem eklentide hem görevlerde size verilen ID'yi kullanın. MQTT güvenliği en iyi uygulamaları yazısı, cihazlar ve ekipler için kimlik bilgisi yönetimini ele alır.
Editör mü, Masaüstü mü, Tarayıcı mı?
| İhtiyaç | En uygun yer |
|---|---|
| Kod yazarken test etmek | VS Code MQTT eklentisi ve çalışma alanı görevleri |
| Büyük ve tanımadığınız bir topic ağacını keşfetmek | Bir masaüstü explorer; bkz. MQTT explorer masaüstü uygulaması |
| Kurulum yapmadan herhangi bir makineden kontrol etmek | Broker portalındaki tarayıcı içi MQTT client ve canlı topic explorer |
| CI pipeline'ları | -C ve -W seçenekleriyle CLI araçları |
Public Broker'ın Ötesine Geçmek
Ücretsiz public MQTT broker eklentiyi denemek için idealdir; ancak ekip geliştirmesi ve gerçek cihazlar özel, kimlik doğrulamalı bir broker gerektirir. Yönetilen bir MQTT broker, sunucu işletmenize gerek kalmadan her geliştiriciye ve cihaza TLS üzerinden kendi kimlik bilgilerini verir. Uygulama kodu yazmaya hazır olduğunuzda MQTT client kütüphanelerine genel bakış yazısı, her büyük dilde karşılık gelen publish ve subscribe çağrılarını gösterir.
ConnectMQ ile Başlayın
ConnectMQ VS Code eklentisini kurun, ardından app.connectmq.com üzerinde ücretsiz Serverless planıyla, kredi kartı gerekmeden özel bir broker oluşturun. Üretilen kimlik bilgilerini yeni bir bağlantıya yapıştırın; dakikalar içinde gerçek cihaz trafiğini editörünüzden test edebilirsiniz.
Sık Sorulan Sorular
VS Code'da yerleşik bir MQTT client var mı?
Hayır. VS Code'da yerleşik MQTT desteği yoktur; bu yüzden onu burada anlatılan gibi bir eklentiyle veya entegre terminalde komut satırı client'larını çalıştıran görevlerle eklersiniz.
ConnectMQ VS Code eklentisi başka broker'larla çalışır mı?
Evet. Standart MQTT broker'larına bağlanır ve portalda oluşturulan broker'lar için de doğal bir seçenektir.
VS Code'dan MQTT testlerini otomatik çalıştırabilir miyim?
Evet. Çalışma alanı görevleri payload dosyalarını publish edebilir ve mosquitto_sub -C 1 -W 15 ile beklenen mesajları bekleyebilir; zamanında hiçbir şey gelmezse görev başarısız olur.
Broker ayarlarını içeren tasks.json dosyasını commit etmeli miyim?
Public broker'ı veya ortam değişkenlerini kullanan görevleri commit edin, ancak parolaları asla commit etmeyin. Özel kimlik bilgilerini ortam değişkenlerinde veya git'ten hariç tutulan yerel yapılandırma dosyalarında saklayın.



