Delphi MQTT İstemcisi — Herhangi Bir MQTT 3.1 / 5.0 Aracısına Bağlanın
Delphi ve C++Builder için yerel bir MQTT 3.1.1 ve MQTT 5.0 istemci bileşeni. Publish, subscribe, retained mesajlar, last will, QoS 0/1/2, TLS, paylaşılan abonelikler ve tam MQTT 5 özellik yüzeyi. HiveMQ, Mosquitto, EMQX, AWS IoT Core ve Azure IoT Hub'a karşı doğrulanmıştır.
MQTT; IoT, telemetri, mobil push ve bağlı araçlar için fiilî mesajlaşma protokolüdür. Tek bir bayt çerçeveleme yazmadan onu Delphi kod tabanınıza taşıyın.
Bir Delphi MQTT istemcisi, VCL veya FMX uygulamanızın OASIS MQTT protokolünü konuşmasını sağlar. Bu, kısıtlı cihazlar ve düşük bant genişlikli, yüksek gecikmeli ağlar için tasarlanmış hafif yayınla/abone ol protokolüdür. sgcWebSockets ile tüm istemci yüzeyini, Delphi 7'den Delphi 13'e ve her Embarcadero hedef platformunda (Win32, Win64, Linux64, macOS, iOS, Android) çalışan tek bir görsel olmayan bileşen, TsgcWSPClient_MQTT olarak elde edersiniz.
Bileşen, her iki ana MQTT sürümünü de aynı kod yolunda uygular: uzun süredir dağıtılan MQTT 3.1.1 (OASIS standardı, 2014'ten bu yana neredeyse her IoT aracısı tarafından kullanılır) ve modern MQTT 5.0 (konu takma adları, oturum sona erme, kullanıcı özellikleri, gelişmiş kimlik doğrulama, istek/yanıt ve paylaşılan aboneliklerle). Tek bir özellik, Version, aralarında geçiş yapar.
Bileşen sınıfı
TsgcWSPClient_MQTT
Taşımalar
Native TCP (1883 / 8883), WebSocket (80 / 443), TLS via OpenSSL or SChannel
Sürümler
MQTT 3.1.1 & MQTT 5.0
Platformlar
Windows, macOS, Linux, iOS, Android, .NET
ARACILAR
Test ettiğimiz her MQTT aracısıyla çalışır
Spesifikasyona uygun bir istemci, prensipte aracıdan bağımsızdır, ancak gerçek dünyadaki aracıların kendine özgü davranışları vardır. Her sürümü, müşterilerimizin gerçekten dağıttığı aracılara karşı test ederiz.
HiveMQ ve HiveMQ Cloud
Tam MQTT 5 özellik yüzeyi, paylaşılan abonelikler, gelişmiş kimlik doğrulama ve HiveMQ Cluster. Ücretsiz Cloud katmanı, bileşeni uçtan uca denemenin en kolay yoludur.
Eclipse Mosquitto
Referans açık kaynaklı aracı. docker run -p 1883:1883 eclipse-mosquitto ile yerel olarak çalıştırın ve 30 saniye içinde bir geliştirme hedefiniz olsun.
EMQX
Kural motoru, Kafka köprüleri ve paylaşılan aboneliklere sahip, çok ölçeklenebilir Erlang aracısı. Milyonlarca bağlantıda üretime hazırdır.
AWS IoT Core
X.509 istemci sertifikaları, 443'te ALPN ile anlaşılan MQTT, SigV4 ile imzalanmış WebSocket ve AWS IoT aracı kotaları. Özel AWS IoT Core sayfasına bakın.
Azure IoT Hub
Cihaz SAS belirteçleri, twin / direct-method konuları, DPS sağlama. Özel Azure IoT Hub sayfasına bakın.
Google Cloud IoT
8883 bağlantı noktasında JWT tabanlı cihaz kimlik doğrulaması. Bileşen, JWT'yi otomatik olarak oluşturur ve döndürür.
RabbitMQ Web-MQTT
15675 bağlantı noktasındaki RabbitMQ Web-MQTT eklentisi. Tek bir TLS bağlantı noktası üzerinden tarayıcılar ve Delphi istemcileri için aynı aracı.
VerneMQ, ActiveMQ, Artemis
Hepsi entegrasyon test paketini geçer. AMQP / STOMP / JMS ile çok protokollü birlikte var olma ücretsizdir.
ÖZELLİKLER
QoS, retained, will, TLS — tüm yüzey
Her hat düzeyindeki MQTT özelliği bir özellik, metot veya olay olarak sunulur. Hiçbir şey gizli değil.
Hizmet Kalitesi 0/1/2
Gönder-ve-unut (QoS 0), PUBACK ile en az bir kez (QoS 1) ve dört yönlü el sıkışma PUBREC → PUBREL → PUBCOMP ile tam olarak bir kez (QoS 2). Her Publish() çağrısı için seçin.
Retained mesajlar
Bir yayını retained olarak işaretleyin, böylece aracı son bilinen değeri gelecekteki herhangi bir aboneye iletir. “Mevcut durum” konuları için standart desen.
Last Will & Testament
LastWillTestament, istemci düzgün olmayan şekilde koparsa aracının yayınladığı bir konu + yük kaydeder. Standart cihaz-çevrimdışı sinyali.
Temiz / kalıcı oturumlar
CleanSession false olduğunda abonelikler ve teslim edilmemiş QoS 1/2 mesajları yeniden bağlanmalar arasında kalıcı olur. Veri kaybetmeden aralıklı bağlantıyı köprüleyin.
TLS ve mTLS
OpenSSL veya SChannel ile 8883'te MQTTS. Sertifikaları diskten, Windows sertifika deposundan, PKCS#12 paketlerinden veya donanım belirteçlerinden yükleyin.
WebSocket taşıması
MQTT'yi 443 bağlantı noktasında WSS üzerinden çalıştırmak için bileşeni bir TsgcWebSocketClient'a takın. HTTP farkındalıklı herhangi bir yük dengeleyiciden veya kurumsal proxy'den geçin.
MQTT 5 özellikleri
Oturum sona erme, alım maksimumu, maksimum paket boyutu, konu takma adı maksimumu, kullanıcı özellikleri, yanıt bilgisi. Her CONNECT / PUBLISH / SUBSCRIBE / DISCONNECT'te.
Paylaşılan abonelikler
$share/<group>/<topic>, gelen mesajları bir çalışan havuzu arasında sırayla dağıtır. Yatay ölçeklendirme ücretsizdir.
WatchDog yeniden bağlanma
Üstel geri çekilme ile otomatik yeniden bağlanma; abonelikler ve sıraya alınmış QoS 1/2 yayınları devam ederken yeniden oynatılır.
HIZLI BAŞLANGIÇ
Sıfırdan bir yayınla/abone ol döngüsüne
Bileşeni bırakın, iki olayı bağlayın, Active ayarlayın.
Dört aracı kimlik doğrulama deseninin tümü kutudan çıkar çıkmaz desteklenir: basit kullanıcı adı/parola (CONNECT paketinin içinde gönderilir), X.509 istemci sertifikaları (mTLS), JWT (Google Cloud IoT, özel aracılar) ve SAS belirteçleri (Azure IoT Hub). MQTT 5 gelişmiş kimlik doğrulama, SCRAM tarzı meydan okuma/yanıt akışları için AUTH paketini OnMQTTAuth aracılığıyla sunar.
Taşıma için, yerel MQTT-over-TCP'yi standart 1883 (açık) veya 8883 (TLS) bağlantı noktalarında çalıştırabilir veya katı yalnızca HTTP güvenlik duvarlarını ve CDN uç noktalarını aşmak için MQTT'yi bir WebSocket üzerinden tünelleyebilirsiniz (Client özelliği herhangi bir TsgcWebSocketClient kabul eder). Her iki seçenek de aynı bileşeni ve aynı olayları kullanır.