Windows Için Mosquitto MQTT Kurulumu

Windows Için Mosquitto MQTT Kurulumu

Merhabalar, uzun bir aradan sonra tekrar yeni bir konuyla dönüş yapmaya karar verdim.

Arduino, Raspberry Pi gibi cihazlarla haşır neşir olan arkadaşlar bu konuyla yakından ilgileneceğine eminim.

Şimdi gelelim konumuza; MQTT Machine-to-Machine bir mesaj kuyruklama ve iletim protokolüdür. Bu protokolün en güzel yanı mesajları saklayabilir tekrar hatırlatma yapmak için bağlantı sağlandığında tekrar gönderebilir olmasıdır. Kendi içerisinde bir database yapısı vardır.
MQ Telemetry Tranport olarak açılımı vardır.

Sözü fazla uzatmadan kuruluma geçelim.

http://mosquitto.org/download/ adresinden uygun sürümü indirdikten sonra kurulumunuzu gerçekleştirebilirsiniz. Yalnız unutmamanız gereken 2 tane daha yazılım vardır.

OpenSSL ve ftp://sources.redhat.com/pub/pthreads-win32/dll-latest/dll/x86/ adresinde ki DLL dosyaları.

OpenSSL’i normal bir şekilde indirip kurulumu gerçekleştirebiliyoruz fakat redhat üzerinden indirdiğimiz tüm DLL’leri C:\Windows\System32 altına koymalıyız yoksa zaten Mosquitto servisimiz çalışmayacaktır.

Kurulumları gerçekleştirdikten sonra servislerimiz çalışmaya hazır olacaktır. Yalnız restart atmanızda fayda vardır. Yoksa IPV4 üzerinde port açılmayabilir.
Bu kısımdan sonra
C:\Program Files (x86)\Mosquitto altında bulunan .exe dosyalarını bir göz atmanızda fayda vardır.
Bu exe dosyalarının her biri command prompt üzerinde çalışmaktadır.
Servisi start etmek için: Başlat > Çalıştır > cmd yazıp enterlayın.
Sonrasında kurulumu gerçekleştirdiğiniz dizine gidin. Örn:
cd \
cd “Program Files (x86)\Mosquitto”
İlgili dizine ulaştıktan sonra servisi start etmek için;
mosquitto -v yazmalısınız. Burada ki -v komutu sanal sunucuyu temsil etmektedir. mosquitto –help yazarsanız eğer tüm komutlarını görebilirsiniz.
Çalıştırılan komutun sonunda aşağıda ki yazılara benzer yazılar görmelisiniz.

1434400038: mosquitto version 1.4.2 (build date 07/05/2015 14:23:18.38) starting
1434400038: Config loaded from mosquitto-custom.conf.
1434400038: Opening ipv6 listen socket on port 1883.
1434400038: Opening ipv4 listen socket on port 1883.

Bu demek oluyor ki artık MQTT Server’ınız çalışmaktadır.

Örnek bir publish ve subscribe yapmak için önce bunların ne anlama geldiğini belirtelim.
Örnekleyerek anlatmak gerekirse;
Subscribe’ı bir kanal gibi düşünün. Mesela bir radyo veya tv kanalı. Kanalı açan herkes kanalın bir abonesi gibi düşünün. Yine bir örnek youtube üzerinde ki kanallar ve abonelikler gibi.
Kanalı bağlanan herkes kanal içerisinden gönderilen mesajları alacaktır.
Burada mesajın gönderim seviyesiyle ilgili bazı farklılıklar meydana çıkmaktadır. Bu farklılığı QoS (Quality of Services) deniyor.
QoS’un değerinin gönderimiyle alakalı 3 çeşit değer vardır.
0: Bu değer ile mesaj gönderildiğinde mesaj hiç bir şekilde saklanmaz. Genel tabiriyle “ateş et ve unut” diyorlar 🙂
1: Gönderilen mesajı kendi database’in de saklar ve tekrar tekrar gönderebilir. Aynı değerde aynı başlıkla (topic, bu konuya geleceğiz) bir mesaj geldiğinde eski mesajı ezer. Senaryoya göre cihaz yapılandırıldıktan sonra kapandığında eski değerleri uçacaktır. Burada QoS’un önemi ortaya çıkıyor. Bu seçenekte gönderilen değerler bağlantı tekrar sağlandığıda aynı kullanıcıya mesajları tekrar iletiyor, böylelikle cihaz kaldığı yerden çalışmaya başlıyor.
2: Gönderilen mesaj aynı QoS 1 seçeneğiyle aynıdır fakat tek farkı mesaj iletildikten sonra bir feedback dönderiyor. Ben bu mesajı ilettim, ilettiğime dair bir cevap aldım, işlem tamamlandı gibi.

Topic: Yayınlanan mesajların bir konu başlığı taşıdığını unutmayalım. Mesela mail gibi düşünebilirsiniz. Bir mail gönderirsiniz konusu hede hode olabilir, aynı konu başlığıyla size cevap gelir, siz cevap yazarsanız vs. vs. yani yapılan mesaj alış verişinin adıdır.

Öncelikle bir kanal açmak için ayrı bir command prompt ile aynı dizine gidip;

mosquitto_sub -t kanal adı

komutunu çalıştırmanız yeterlidir. Yardım konuları için mosquitto_sub –help başlığı altına bakabilirsiniz.

Kanal açıldığında aşağıdaki gibi bir mesaj verecektir.
1434405558: Sending CONNACK to mosqsub/XXXPCADI (0, 0)
1434405558: Received SUBSCRIBE from mosqsub/XXXPCADI
1434405558: kanal (QoS 0)
1434405558: mosqsub/XXXPCADI 0 kanal
1434405558: Sending SUBACK to mosqsub/XXXPCADI

Artık açılan kanal üzerinden yayınımızı yapabiliriz.
Ama yayınladığımız mesajı görebilirmek için önce açtığımız kanala abone olmalıyız. Abone olabilmek için;

mosquitto_sub -t kanal adı

komutunu çalıştırmalıyız.

Şimdi mesaj yayınlayalım.
Yine ayrı bir command prompt açalım ve yine aynı dizine gidelim. Bu sefer aşağıda ki komutu çalıştıralım.

mosquitto_pub -t konu başlığı(topic) -m (message) mesajımız

yazdığınız mesajınız yayınlanacaktır ve yine mosquitto_pub –help ile diğer parametrelere ulaşabilirsiniz.

Şimdilik buraya kadar. Yapılandırma yazımızda görüşmek üzere.

Bol kodlu günler.

5,063 total views, 4 views today

No Comments

Leave a Comment

Ulaşım için:Facebook: /ganigani Twitter: @abdulgani_demir


*

%d blogcu bunu beğendi: