MQTT Protokolü
Delphi, C++Builder ve .NET için yerel MQTT 3.1.1 ve MQTT 5.0 istemcisi. QoS 0/1/2, saklanan mesajlar, son istek, topic alias'ları ve paylaşımlı aboneliklerle WebSocket veya ham TCP üzerinden publish-subscribe mesajlaşma.
Delphi, C++Builder ve .NET için yerel MQTT 3.1.1 ve MQTT 5.0 istemcisi. QoS 0/1/2, saklanan mesajlar, son istek, topic alias'ları ve paylaşımlı aboneliklerle WebSocket veya ham TCP üzerinden publish-subscribe mesajlaşma.
Delphi / .NET çalışma zamanının çalıştığı her yerde çalışan birinci sınıf bir MQTT uygulaması — masaüstü servislerinden mobil cihazlara, standartlara uygun herhangi bir MQTT broker'ıyla iletişim kurar.
TsgcWSPClient_MQTT
Windows, macOS, Linux, iOS, Android
Standard / Professional / Enterprise
MQTT'nin tel seviyesindeki her özelliği — yalnızca publish ve subscribe değil.
Gönder-unut, en-az-bir-kez ve tam-bir-kez teslimat. QoS 2 dört yönlü el sıkışması (PUBLISH → PUBREC → PUBREL → PUBCOMP), yeniden deneme / denetim mantığı için olaylar aracılığıyla tamamen sunulur.
WebSocket üzerinden MQTT çalıştırmak için Client özelliğini bir TsgcWebSocketClient ile bağlayın veya 1883 / 8883 portunda yerel MQTT TCP taşımasını kullanın — aynı bileşen, aynı API.
Broker'ın bilinen son değeri gelecekteki herhangi bir aboneye iletmesi için yayınları saklanan olarak işaretleyin. Publish üzerinde çağrı başına retain ayarlayın veya temizleyin.
LastWillTestament, istemci düzgün olmayan şekilde bağlantısını keserse broker'ın yayınlayacağı bir topic + yük kaydeder — cihaz-çevrimdışı olaylarını bildirmenin standart yolu.
+ (tek seviye) ve # (çok seviye) joker karakterli topic filtreleri: sensors/+/temperature veya devices/#.
Oturum süresi sonu, alma maksimumu, maksimum paket boyutu, topic alias maksimumu, istek yanıt bilgisi, kullanıcı özellikleri — tümüne ConnectProperties, PublishProperties ve SubscribeProperties aracılığıyla erişilebilir.
MQTT 5, istemcinin (ve broker'ın) tekrarlanan yayınlar için uzun topic adlarını 2 baytlık bir tam sayı alias ile değiştirmesine olanak tanır — yoğun telemetri akışları için büyük tasarruf.
MQTT 5 $share/<group>/<topic>, gelen mesajları bir abone grubu arasında dönüşümlü olarak dağıtır — yatay çalışan havuzları için yapı taşı.
MQTT 5 ResponseTopic ve CorrelationData özellikleri pub-sub'ı asenkron RPC'ye dönüştürür — ekstra çerçeveleme olmadan olaylara yerleştirilmiştir.
SCRAM tarzı challenge'lar için AuthenticationMethod / AuthenticationData içeren MQTT 5 AUTH paketi — Auth çağırın, OnMQTTAuth olayını işleyin.
HeartBeat, ayarlanabilir bir aralıkta PINGREQ gönderir. WatchDog, üstel geri çekilmeyle otomatik olarak yeniden bağlanır ve abonelikleri devam ettirir.
İstemci sertifikalarıyla 8883'te MQTTS (ham TCP+TLS) veya 443'te WSS çalıştırın. TLSOptions.IOHandler, OpenSSL (çok platformlu) veya SChannel (Windows çekirdek TLS) seçer.
Hafif çerçeveleme, düşük ek yük ve durum bilgisi olan oturumlar, MQTT'yi bu senaryolar için varsayılan seçim yapar.
Sensörler; sıcaklık, titreşim, GPS ve pil okumalarını keep-alive'lı MQTT oturumları üzerinden akıtır — istikrarsız LTE/Cat-M/NB-IoT bağlantılarında bile.
Filo izleyicileri, OBD ağ geçitleri ve EV şarj istasyonları için QoS 1 ile çift yönlü komut kanalı — yayınları kaybetmeden yeniden bağlan ve devam et.
OPC-UA yoklamasını olay tabanlı publish-subscribe ile değiştirin. Topic alias'ları ve paylaşımlı abonelikler binlerce PLC ve saha cihazına ölçeklenir.
Aydınlatma, HVAC, kilitler ve presence sensörleri Mosquitto veya Home Assistant aracılığıyla iletişim kurar — Delphi istemcisi herhangi bir gömülü düğüm kadar kolay entegre olur.
Aynı bileşen AWS IoT Core, Azure IoT Hub, Google Cloud IoT, IBM Watson, HiveMQ Cloud ve EMQX ile iletişim kurar — X.509 istemci sertifikaları veya SAS belirteçleriyle.
RabbitMQ Web-MQTT (port 15675) üzerinde MQTT-over-WebSocket, aynı broker'ın tek bir TLS portu üzerinden Delphi istemcilerine ve JS panolarına iletmesini sağlar.
iOS/Android üzerinde Last Will ile uzun ömürlü MQTT oturumları, satıcıya özgü bir sağlayıcı olmadan size presence ve hafif push sağlar.
Üreticileri ve tüketicileri merkezi bir broker aracılığıyla ayırın. Paylaşımlı abonelikler, işi bir Delphi çalışan servisi havuzu arasında dönüşümlü olarak dağıtır.
Spesifikasyona uygun istemci — müşterilerimizin gerçekten dağıttığı broker'lara karşı doğrulanmıştır.
X.509 istemci sertifikaları, WebSocket üzerinden SigV4 ve AWS IoT broker kotaları. Özel AWS IoT sayfasına bakın.
Cihaz-SAS belirteçleri, twin/method topic'leri ve DPS sağlama. Azure IoT Hub sayfasına bakın.
Tam MQTT 5 özellik yüzeyi, paylaşımlı abonelikler, gelişmiş kimlik doğrulama ve HiveMQ Cluster.
Referans açık kaynak broker — hem MQTT 3.1.1 hem de 5.0, TCP veya WebSocket üzerinden.
Paylaşımlı abonelikler, kural motoru ve Kafka köprüsü olan, devasa ölçeklenebilir broker. Sorunsuz entegrasyon.
15675 portunda MQTT-over-WebSocket eklentisi — tarayıcı + Delphi panoları için standart eşleşme.
Erlang/OTP üzerine kurulu kümelenmiş MQTT broker'ı — hem MQTT 3.1.1 hem de 5.0 modları test takımını geçer.
Apache ActiveMQ'nun yerleşik MQTT dinleyicisi ve Artemis broker'ı — AMQP, STOMP ve JMS ile çoklu protokol bir arada bulunma.
Bir TsgcWebSocketClient ile TsgcWSPClient_MQTT'yi eşleştirin, OnMQTTConnect / OnMQTTPublish olaylarını bağlayın, ardından Subscribe ve Publish kullanın.
uses
sgcWebSocket, sgcWebSocket_Protocol_MQTT_Client,
sgcWebSocket_Protocol_MQTT_Message;
var
WSClient: TsgcWebSocketClient;
MQTT: TsgcWSPClient_MQTT;
begin
WSClient := TsgcWebSocketClient.Create(nil);
WSClient.Host := 'www.esegece.com';
WSClient.Port := 15675;
MQTT := TsgcWSPClient_MQTT.Create(nil);
MQTT.Client := WSClient;
MQTT.Authentication.Enabled := True;
MQTT.Authentication.UserName := 'sgc';
MQTT.Authentication.Password := 'sgc';
MQTT.OnMQTTConnect := MQTTConnect;
MQTT.OnMQTTPublish := MQTTPublish;
WSClient.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/#');
end;
procedure TForm1.MQTTPublish(Connection: TsgcWSConnection;
aTopic, aText: string;
PublishProperties: TsgcWSMQTTPublishProperties);
begin
Memo1.Lines.Add(aTopic + ': ' + aText);
end;
// Saklanan bir QoS 1 mesajı yayınla
MQTT.Publish('sensors/temperature/room1',
'{"value":22.5,"unit":"C"}', mtqsAtLeastOnce, True);
// uses: sgcWebSocket, sgcWebSocket_Protocol_MQTT_Client
TsgcWebSocketClient *WSClient = new TsgcWebSocketClient(this);
WSClient->Host = "www.esegece.com";
WSClient->Port = 15675;
TsgcWSPClient_MQTT *MQTT = new TsgcWSPClient_MQTT(this);
MQTT->Client = WSClient;
MQTT->Authentication->Enabled = true;
MQTT->Authentication->UserName = "sgc";
MQTT->Authentication->Password = "sgc";
MQTT->OnMQTTConnect = MQTTConnect;
MQTT->OnMQTTPublish = MQTTPublish;
WSClient->Active = true;
void __fastcall TForm1::MQTTPublish(TsgcWSConnection *Connection,
UnicodeString aTopic, UnicodeString aText,
TsgcWSMQTTPublishProperties PublishProperties)
{
Memo1->Lines->Add(aTopic + ": " + aText);
}
MQTT->Publish("sensors/temperature/room1",
"{\"value\":22.5,\"unit\":\"C\"}", mtqsAtLeastOnce, true);
using esegece.sgcWebSockets;
var WSClient = new TsgcWebSocketClient();
WSClient.Options.Parameters = "/ws";
var MQTT = new TsgcWSPClient_MQTT();
MQTT.Client = WSClient;
MQTT.Authentication.Enabled = true;
MQTT.Authentication.UserName = "sgc";
MQTT.Authentication.Password = "sgc";
MQTT.HeartBeat.Enabled = true;
MQTT.HeartBeat.Interval = 5;
MQTT.OnMQTTConnect += (conn, session, code, name, props) => MQTT.Subscribe("sensors/temperature/#");
MQTT.OnMQTTPublish += (conn, topic, text, props) => Console.WriteLine(topic + ": " + text);
WSClient.Host = "www.esegece.com";
WSClient.Port = 15675;
WSClient.Active = true;
MQTT.Publish("sensors/temperature/room1",
"{\"value\":22.5,\"unit\":\"C\"}", TmqttQoS.mtqsAtLeastOnce, true);
Bu bileşenin uyguladığı protokoller için yetkili kaynaklar.
Bileşen referansına doğrudan bağlanın, çalışmaya hazır demo projesini alın ve denemeyi indirin.
| Çevrimiçi Yardım — Protocol_MQTT Bu bileşen için tam özellik, metot ve olay referansı. | Aç | |
| Demo Projesi — Demos\Protocols\MQTT Çalışmaya hazır örnek proje. sgcWebSockets paketinin içinde gelir — denemeyi aşağıdan indirin. | Aç | |
| Teknik Belge (PDF) Özellikler, hızlı başlangıç, Delphi, C++ Builder ve .NET için kod örnekleri ve birincil kaynak referansları — yalnızca bu bileşen. | Aç | |
| Kullanıcı Kılavuzu (PDF) Kütüphanedeki her bileşeni kapsayan kapsamlı kılavuz. | Aç |