sgcMQ: Delphi ve C++ Builder için MQTT, AMQP, Kafka ve STOMP istemcileri
Bağımsız ürün Windows, Linux, macOS, iOS ve Android

sgcMQ: Delphi ve C++ Builder için MQTT, AMQP, Kafka ve STOMP istemcileri

Yedi istemci bileşeni MQTT 3.1.1 ve 5.0, AMQP 0.9.1, AMQP 1.0, Apache Kafka hat protokolü ve STOMP 1.0'dan 1.2'ye kadar olan sürümleri konuşur; RabbitMQ ve ActiveMQ için broker'a özel STOMP istemcileri de vardır. Her hat biçimi kitaplığın içinde Object Pascal ile ayrıştırılır ve yazılır, bu nedenle dağıtmanız gereken harici bir istemci kitaplığı, DLL ya da sarmalayıcı yoktur. sgcMQ bağımsızdır, üzerine kurulduğu sgcWebSockets Core çalışma zamanını da içerir, bu yüzden satın alınacak bir temel lisans yoktur.

Temel lisans gerektirmez
Tam kaynak kodu
Altı hedef, tek kod tabanı
Tek taşıyıcı TsgcTCPClient Düz TCP veya TLS, her protokol için aynı soket
MQTT TsgcWSPClient_MQTT
AMQP 0.9.1 TsgcWSPClient_AMQP
AMQP 1.0 TsgcWSPClient_AMQP1
Kafka TsgcWSPClient_Kafka
STOMP TsgcWSPClient_STOMP
RabbitMQ için STOMP TsgcWSPClient_STOMP_RabbitMQ
ActiveMQ için STOMP TsgcWSPClient_STOMP_ActiveMQ
7 İstemci bileşeni Bileşen paletinde tek bir sayfa
5 Protokol ailesi MQTT, AMQP 0.9.1, AMQP 1.0, Kafka, STOMP
6 Hedef platform Win32, Win64, Linux64, macOS, iOS, Android
0 Harici kitaplık librdkafka yok, Paho yok, Qpid yok, DLL yok
1 Taşıyıcı Tek bir TsgcTCPClient hepsine hizmet eder

Önce Bilmeye Değer İki Şey

sgcMQ'nun sizden ne istediği ve baytların broker'a nasıl ulaştığı. İki yanıt da kısa.

★ Temel lisans gerektirmez

sgcMQ kendi kendine yeter

Bir temel ürünün üzerine oturmaz. Bileşenlerin ihtiyaç duyduğu her şey sgcMQ'nun içinde gelir: sgcWebSockets Core çalışma zamanı, TCP taşıyıcısı TsgcTCPClient, TLS katmanı ve JSON yardımcıları. Tek SKU, tek kurulum paketi, satın alınacak başka hiçbir şey yok.

Her lisansla birlikte tam kaynak kodu gelir, böylece protokol uygulamaları bir ikili dosyanın içinde kaybolmak yerine kendi hata ayıklayıcınızda adım adım izlenir.

Taşıma kapsamı

sgcMQ düz TCP ve TLS üzerinden çalışır

Paketteki her protokol, düz olarak açılan ya da TLS ile sarmalanan ham bir soket üzerinden ilerler. Bu, MQTT, AMQP, Kafka ve STOMP'un normalde dağıtıldığı yerel broker bağlantı noktalarını kapsar ve kutudan çıkanın ötesinde hiçbir şey gerektirmez.

Bunun yerine bir protokolü WebSocket üzerinden çalıştırmak, örneğin WebSocket üzerinden MQTT ya da Web-STOMP, WebSocket istemcisini gerektirir ve bu istemci sgcMQ ile değil, sgcWebSockets ile gelir. Seçiminizi yapmadan önce broker'ınızın hangi taşımayı sunduğunu kontrol edin.

Yedi İstemci, Beş Protokol Ailesi

Her biri, bir forma bırakabileceğiniz ya da kodda oluşturabileceğiniz görsel olmayan bir bileşendir. Taşıyıcıyı Client özelliği üzerinden bağlar, protokol olaylarını yazar, ardından protokolün kendi fiillerini çağırırsınız. Adlandırma yedi bileşende de tutarlıdır, bu nedenle birini öğrenmek diğerlerinin çoğunu da öğretir.

MQTT1 bileşen

Yayınlama, abone olma ve tüm QoS mekanizması

TsgcWSPClient_MQTT, tek bir MQTTVersion özelliğinin ardında MQTT 3.1.1 ve MQTT 5.0'ı kapsar. QoS 0, 1 ve 2; PUBACK, PUBREC, PUBREL ve PUBCOMP alışverişi gizlenmek yerine olaylar olarak açığa çıkarılır; ayrıca saklanan mesajlar, Last Will and Testament, joker karakterli abonelikler ve devam ettirilebilir oturumlar. Sürüm 5, sebep kodlarını, kullanıcı özelliklerini, konu takma adlarını, paylaşılan abonelikleri ve soru-cevap şemaları için AUTH gidiş-dönüşünü ekler.

TsgcWSPClient_MQTT MQTT 3.1.1 · MQTT 5.0
AMQP2 bileşen

Adından başka hiçbir ortak yanı olmayan iki protokol

TsgcWSPClient_AMQP, RabbitMQ'nun üzerine kurulduğu protokol olan AMQP 0.9.1'i konuşur: kanallar, exchange ve kuyruk tanımlama, bağlamalar, tüketiciler, yayıncı onayları, prefetch QoS ve işlemler. TsgcWSPClient_AMQP1, Azure Service Bus ve Event Hubs'ın ardındaki OASIS ve ISO/IEC 19464 standardı olan AMQP 1.0'ı konuşur: konteynerler, oturumlar, gönderici ve alıcı bağlantıları, krediye dayalı akış denetimi, SASL ve Claims-Based Security token yardımcıları. Farklı hat biçimi, farklı nesne modeli; bu yüzden sgcMQ, tek bir API'nin ikisine de uyduğunu varsaymak yerine her biri için ayrı bir bileşen sunar.

Apache Kafka1 bileşen

İkili protokol, doğrudan konuşulur

TsgcWSPClient_Kafka, v2 kayıt yığını biçimi dahil olmak üzere Kafka hat protokolünü TCP üzerinden konuşur. Önde bir REST proxy'si, altta bir librdkafka yoktur. Seçtiğiniz acks düzeyi ve gzip sıkıştırmasıyla tek tek kayıtlar ya da yığınlar üretin; koordinatör keşfi, katılma, senkronizasyon, kalp atışı ve yeniden dengelemenin sizin yerinize yürütüldüğü bir grup üzerinden tüketin ya da bir bölümü doğrudan offset ile okuyun. Offset kaydetme, konu oluşturma ve silme, grup listeleme ve broker yetenek yoklaması birinci sınıf çağrılardır.

TsgcWSPClient_Kafka Üretici · Tüketici grupları · Yönetim
STOMP3 bileşen

Tek bir genel istemci, iki broker lehçesi

TsgcWSPClient_STOMP, STOMP 1.0, 1.1 ve 1.2'yi yönetir: SEND, SUBSCRIBE, UNSUBSCRIBE, ACK, NACK, makbuzlar, çift yönlü kalp atışı ve BEGIN, COMMIT ile ABORT işlem çerçeveleri; kabul edilen sürümler Versions üzerinden duyurulur. İki türev bileşen, broker hedef kurallarını adlandırılmış metotlara dönüştürür: RabbitMQ için /queue, /topic, /exchange, /amq/queue ve /temp-queue yardımcıları, ActiveMQ için kuyruk ve konu yardımcıları ile broker'ın kendi başlıkları için bir ActiveMQ_Options özelliği.

Yayımlanmış Protokoller, Broker Seçimi Sizin

sgcMQ, bir üretici SDK'sını sarmalamak yerine belirtimleri uygular, bu nedenle bu protokolleri hat üzerinde konuşan her şey adaydır. Aynı bileşen, kendi sunucunuzda barındırdığınız bir broker ile yönetilen bir bulut hizmetinde kod değişikliği olmadan çalışır ve broker değiştirmek bir ana bilgisayar, bir bağlantı noktası ve bir kimlik bilgisi kümesinden ibarettir.

RabbitMQ TsgcWSPClient_AMQP

Yerel olarak AMQP 0.9.1. STOMP ve MQTT eklentilerine de, her biri kendi bileşeniyle erişilebilir.

Apache Kafka TsgcWSPClient_Kafka

9092 üzerinde broker'ın kendi ikili protokolü ve Kafka hattıyla uyumlu her broker.

Eclipse Mosquitto TsgcWSPClient_MQTT

Referans niteliğindeki hafif MQTT broker'ı; 1883 üzerinde düz ya da 8883 üzerinde TLS ile.

HiveMQ TsgcWSPClient_MQTT

Paylaşılan abonelikler ve kullanıcı özellikleri dahil olmak üzere tam MQTT 5.0.

EMQX TsgcWSPClient_MQTT

MQTT 3.1.1 ve 5.0; kendi sunucunuzda ya da üreticinin bulutunda.

Apache ActiveMQ TsgcWSPClient_STOMP_ActiveMQ

61613 üzerinde STOMP ya da AMQP 1.0 bileşeniyle Artemis'e karşı AMQP 1.0.

Azure Service Bus TsgcWSPClient_AMQP1

Claims-Based Security yardımcılarıyla AMQP 1.0 ve aynı bileşen üzerinde Event Hubs.

AWS IoT Core TsgcWSPClient_MQTT

Taşıyıcının TLSOptions ayarlarıyla yapılandırılan, istemci sertifikalı TLS üzerinden MQTT.

Her Protokolün Altında Tek Bir Taşıyıcı

Protokol bileşeninin Client özelliğine bir TsgcTCPClient atayın, çerçeveler doğrudan sokete gitsin. Şifreleme, proxy geçişi, IPv6 ve yeniden bağlanma o taşıyıcının ayarlarıdır, bu nedenle bir kez yapılandırılır ve üstlerindeki protokol MQTT, AMQP, Kafka ya da STOMP olsun aynı şekilde davranır.

MQTT 3.1.1 ve 5.0 TsgcWSPClient_MQTT
TCP1883Varsayılan MQTT dinleyicisi.
TLS8883Taşıyıcıda TLS seçeneğini açın.
AMQP 0.9.1 TsgcWSPClient_AMQP
TCP5672RabbitMQ'nun varsayılan dinleyicisi.
TLS5671amqps dinleyicisi.
AMQP 1.0 TsgcWSPClient_AMQP1
TCP5672Aynı bağlantı noktası numarası, farklı protokol.
TLS5671Azure Service Bus'ın beklediği bağlantı noktası.
Apache Kafka TsgcWSPClient_Kafka
TCP9092Düz metin dinleyicisi.
TLS9093Broker'ın kendi SSL dinleyicisi hangi değere ayarlandıysa.
STOMP, RabbitMQ eklentisi TsgcWSPClient_STOMP_RabbitMQ
TCP61613Yerel STOMP bağlantı noktası.
TLS61614Eklentinin şifreli dinleyicisi.
STOMP, ActiveMQ TsgcWSPClient_STOMP_ActiveMQ
TCP61613Yerel STOMP bağlayıcısı.
TLS61612Broker'ın stomp+ssl bağlayıcısı.

Genel TsgcWSPClient_STOMP de STOMP destekleyen her broker'a karşı 61613'ü kullanır. Bunlar alışılmış varsayılanlardır ve taşıyıcının Port özelliği, dağıtımınızın gerçekte dinlediği değeri kabul eder.

Tercih ettiğiniz şekilde TLS

TLSOptions.IOHandler, çok platformlu derlemeler için OpenSSL'i, ya da OpenSSL ikililerini hiç dağıtmak istemediğinizde Windows'ta SChannel'i seçer. Karşılıklı TLS, istemci sertifikasını bir PEM dosyasından, bir PKCS#12 paketinden ya da Windows sertifika deposundan okur.

Yeniden bağlanma ve canlı tutma

Taşıyıcının WatchDog bileşeni, kopan bir bağlantının ardından yapılandırılabilir bir aralık ve deneme sayısıyla yeniden bağlanır ve her protokol kendi canlılık denetimini ekler: MQTT canlı tutma ping'leri, AMQP kalp atışları, STOMP kalp atışı ve Kafka tüketici grubu kalp atışları.

Proxy'ler ve IPv6

HTTP CONNECT proxy desteği taşıyıcıda bulunur, bu nedenle kurumsal bir proxy'nin arkasındaki broker'a erişilebilir ve IPv6 bir broker adresi ek yapılandırma gerektirmez.

Yoklama döngüsü değil, olaylar

Okuma kendi iş parçacığında çalışır ve gelen çerçeveler tiplenmiş olaylar olarak ulaşır: OnMQTTPublish, OnAMQPBasicDeliver, OnKafkaMessage, OnSTOMPMessage. VCL ve FMX kodu için bunları ana iş parçacığına aktarmak üzere taşıyıcının bildirim ayarlarını yapın.

MQTT Üzerinden Abone Olun ve Yayınlayın

Bir TsgcTCPClient bileşenini protokol bileşeniyle eşleştirin, kimlik bilgilerini girin, olayları yazın, ardından protokol fiillerini çağırın. Object Pascal ve C++ Builder'da aynı yapı, diğer altı bileşende de aynı yapı.

uses
  sgcTCP_Client_WS, sgcWebSocket_Classes, sgcWebSocket_Types,
  sgcWebSocket_Protocols, sgcWebSocket_Protocol_MQTT_Client,
  sgcWebSocket_Protocol_MQTT_Message;

var
  TCPClient: TsgcTCPClient;
  MQTT: TsgcWSPClient_MQTT;
begin
  TCPClient := TsgcTCPClient.Create(nil);   // plain MQTT over TCP
  TCPClient.Host := 'broker.example.com';
  TCPClient.Port := 1883;
  TCPClient.WatchDog.Enabled := True;

  MQTT := TsgcWSPClient_MQTT.Create(nil);
  MQTT.Client := TCPClient;
  MQTT.MQTTVersion := mqtt5;
  MQTT.Authentication.Enabled  := True;
  MQTT.Authentication.UserName := 'sgc';
  MQTT.Authentication.Password := 'sgc';

  MQTT.LastWillTestament.Enabled := True;
  MQTT.LastWillTestament.Topic   := 'devices/sensor-01/status';
  MQTT.LastWillTestament.Message := 'offline';
  MQTT.LastWillTestament.QoS     := mtqsAtLeastOnce;
  MQTT.LastWillTestament.Retain  := True;

  MQTT.OnMQTTConnect := MQTTConnect;
  MQTT.OnMQTTPublish := MQTTPublish;

  TCPClient.Active := True;
end;

procedure TForm1.MQTTConnect(Connection: TsgcWSConnection;
  const Session: Boolean; const ReasonCode: Integer;
  const ReasonName: string;
  const ConnectProperties: TsgcWSMQTTCONNACKProperties);
begin
  MQTT.Subscribe('sensors/+/temperature', mtqsAtLeastOnce);
  MQTT.Publish('devices/sensor-01/status',
    'online', mtqsAtLeastOnce, True);   // retained
end;

procedure TForm1.MQTTPublish(Connection: TsgcWSConnection;
  aTopic, aText: string;
  PublishProperties: TsgcWSMQTTPublishProperties);
begin
  Memo1.Lines.Add(aTopic + ' = ' + aText);
end;

// For an encrypted broker: same code, TLS on the carrier.
TCPClient.Port := 8883;
TCPClient.TLS  := True;
// include: sgcTCP_Client_WS.hpp, sgcWebSocket_Protocols.hpp,
// sgcWebSocket_Protocol_MQTT_Client.hpp,
// sgcWebSocket_Protocol_MQTT_Message.hpp

TsgcTCPClient *TCPClient = new TsgcTCPClient(this);   // plain MQTT over TCP
TCPClient->Host = "broker.example.com";
TCPClient->Port = 1883;
TCPClient->WatchDog->Enabled = true;

TsgcWSPClient_MQTT *MQTT = new TsgcWSPClient_MQTT(this);
MQTT->Client = TCPClient;
MQTT->MQTTVersion = mqtt5;
MQTT->Authentication->Enabled  = true;
MQTT->Authentication->UserName = "sgc";
MQTT->Authentication->Password = "sgc";

MQTT->LastWillTestament->Enabled = true;
MQTT->LastWillTestament->Topic   = "devices/sensor-01/status";
MQTT->LastWillTestament->Message = "offline";
MQTT->LastWillTestament->QoS     = mtqsAtLeastOnce;
MQTT->LastWillTestament->Retain  = true;

MQTT->OnMQTTConnect = MQTTConnect;
MQTT->OnMQTTPublish = MQTTPublish;

TCPClient->Active = true;

void __fastcall TForm1::MQTTPublish(TsgcWSConnection *Connection,
    UnicodeString aTopic, UnicodeString aText,
    TsgcWSMQTTPublishProperties PublishProperties)
{
  Memo1->Lines->Add(aTopic + " = " + aText);
}

MQTT->Subscribe("sensors/+/temperature", mtqsAtLeastOnce);
MQTT->Publish("sensors/room1/temperature",
  "{\"value\":22.5,\"unit\":\"C\"}", mtqsAtLeastOnce, true);

// For an encrypted broker: same code, TLS on the carrier.
TCPClient->Port = 8883;
TCPClient->TLS  = true;

Altı Hedef, Yıldız İşareti Yok

Mesajlaşma paketinde hiçbir platform kısıtlaması yoktur. Yedi istemcinin tamamı ve altlarındaki taşıyıcı, tek bir kaynak ağacından, bir Windows hizmetinden bir Android telefona kadar derleyicinin ürettiği her hedef için kayıtlıdır.

7 protokol istemcisinin tamamı MQTT, AMQP 0.9.1, AMQP 1.0, Kafka ve üç STOMP istemcisi
Windows Win32 Windows Win64 Linux64 macOS iOS Android
TsgcTCPClient taşıyıcısı Soket, TLS, proxy, IPv6 ve WatchDog ile yeniden bağlanma
Windows Win32 Windows Win64 Linux64 macOS iOS Android
TLS motoru TLSOptions.IOHandler ile seçilir
OpenSSL, her hedefte SChannel, yalnızca Windows
IDE desteği Tek kaynak ağacı, her sürüm için tasarım zamanı paketleri
Delphi 7'den 13'e C++ Builder
WebSocket taşıyıcısı WebSocket üzerinden MQTT, Web-STOMP ve benzerleri
sgcMQ'da yok Bir sgcWebSockets paketi gerektirir

Standartların ve platformların tam tablosunu özellikler sayfasında görün →

Bağımsız Bir Paket

sgcMQ kendi başına lisanslanır, tek bir geliştirici için €249 fiyatından başlar. Tüm lisanslar tam kaynak kodunu, 1 yıllık güncellemeleri ve 50% ile 70% arasında bir yenileme indirimi içerir: Tek bir paketi yenilediğinizde 50%, iki pakette 60%, üç veya daha fazla pakette 70% indirim uygulanır. sgcAI ve sgcMQ ürünlerinin her biri ayrı bir paket sayılır.

sgcMQ

€249

Single, Team ve Site lisansları mevcuttur.

  • MQTT 3.1.1 ve 5.0 istemcisi
  • AMQP 0.9.1 ve AMQP 1.0 istemcileri
  • Apache Kafka istemcisi
  • STOMP, RabbitMQ ve ActiveMQ istemcileri
  • sgcWebSockets Core çalışma zamanı dahil
  • Delphi ve C++ Builder, altı hedefin tamamı
  • Tam kaynak kodu
  • 1 yıl güncelleme
★ Temel lisans gerektirmez

sgcMQ, sgcWebSockets Core çalışma zamanını içerir, bu yüzden satın alınacak başka hiçbir şey yoktur.

Ödeme sayfasında iki kalem listelenir: sıfır ücretlendirilen sgcWebSockets Core çalışma zamanı hakkı ve sgcMQ paketinin kendisi. Tüm fiyatlandırma ayrıntıları.

3,000+Geliştirici
20+Yıl
761+Bileşen
30+API Entegrasyonu
5Platform
30 Günlük Para İade GarantisiMemnun kalmadınız mı? Satın alımdan sonraki 30 gün içinde tam para iadesi talep edin. İade politikasına bakın

Delphi'den Broker'ınızla Konuşun

Tek bir pakette MQTT, AMQP, Kafka ve STOMP; yerel olarak uygulanmış, çalışma zamanı pakete dahil ve kutusunda tam kaynak koduyla. Aynı koddan Windows, Linux, macOS, iOS ve Android.

eSeGeCe'nin Diğer Ürünleri

sgcMQ'yu diğer Delphi, C++ Builder ve .NET bileşen kitaplıklarımızla eşleştirin.

sgcWebSockets

Kitaplığın tamamı: WebSocket istemcileri ve sunucuları, HTTP/2, IoT, P2P ve yapay zeka bileşenleri. WebSocket taşıyıcısı burada bulunur.

Daha fazla bilgi →

sgcQUIC

OpenSSL 3.5'in yerleşik QUIC motoru üzerine kurulu QUIC (RFC 9000) ve HTTP/3 (RFC 9114) istemci ve sunucu bileşenleri.

Daha fazla bilgi →

sgcAI

Yapay zeka, LLM ve MCP bileşenleri. Tek bir sohbet bileşeni OpenAI, Anthropic, Gemini, DeepSeek, Ollama, Grok ve Mistral'a erişir.

Daha fazla bilgi →

sgcHTML

Delphi, C++ Builder ve .NET için Bootstrap 5 ve htmx ile veriye duyarlı sunucu tarafı HTML/arayüz bileşenleri.

Daha fazla bilgi →

sgcSign

Kurumsal dijital imzalar. 10 anahtar sağlayıcı ve 21 AB ülke profiliyle XAdES, PAdES, CAdES ve ASiC.

Daha fazla bilgi →

sgcOpenAPI

OpenAPI 3.0 ayrıştırıcısı ve SDK oluşturucusu. Herhangi bir OpenAPI belirtimini saniyeler içinde güçlü tipli bir Delphi istemcisine dönüştürün.

Daha fazla bilgi →