sgcMQ: klienci MQTT, AMQP, Kafka i STOMP dla Delphi i C++ BuilderPrzejdź do treści
Produkt samodzielnyWindows, Linux, macOS, iOS i Android
sgcMQ: klienci MQTT, AMQP, Kafka i STOMP dla Delphi i C++ Builder
Siedem komponentów klienckich mówi w MQTT 3.1.1 i 5.0, AMQP 0.9.1, AMQP 1.0, protokole sieciowym Apache Kafka oraz STOMP od 1.0 do 1.2, a dla RabbitMQ i ActiveMQ dostępni są klienci STOMP dostosowani do konkretnego brokera. Każdy format sieciowy jest parsowany i zapisywany w Object Pascal wewnątrz biblioteki, więc nie trzeba dostarczać zewnętrznej biblioteki klienckiej, biblioteki DLL ani nakładki. sgcMQ jest samodzielny, zawiera środowisko uruchomieniowe sgcWebSockets Core, na którym jest zbudowany, więc nie ma licencji bazowej do kupienia.
0Bibliotek zewnętrznychBez librdkafka, bez Paho, bez Qpid, bez DLL
1Nośnik transportowyJeden TsgcTCPClient obsługuje je wszystkie
ZANIM KUPISZ
Dwie rzeczy, które warto wiedzieć najpierw
Czego sgcMQ od ciebie wymaga i jak bajty docierają do brokera. Obie odpowiedzi są krótkie.
★ Nie wymaga licencji bazowej
sgcMQ jest samowystarczalny
Nie opiera się na produkcie bazowym. Wszystko, czego potrzebują komponenty, jest zawarte w sgcMQ: środowisko uruchomieniowe sgcWebSockets Core, nośnik TCP TsgcTCPClient, warstwa TLS i funkcje pomocnicze JSON. Jedno SKU, jeden instalator, nic więcej do kupienia.
Pełny kod źródłowy jest dostarczany z każdą licencją, więc implementacje protokołów prześledzisz krok po kroku we własnym debugerze, zamiast oglądać je znikające w pliku binarnym.
Zakres transportu
sgcMQ to zwykły TCP i TLS
Każdy protokół w pakiecie działa na surowym gnieździe, otwartym zwyczajnie albo owiniętym w TLS. Obejmuje to natywne porty brokerów, czyli sposób, w jaki MQTT, AMQP, Kafka i STOMP są zwykle wdrażane, i nie wymaga niczego poza tym, co jest w zestawie.
Uruchomienie protokołu przez WebSocket, na przykład MQTT przez WebSocket albo Web-STOMP, wymaga klienta WebSocket, a ten jest dostarczany z sgcWebSockets, a nie z sgcMQ. Sprawdź, jaki transport udostępnia twój broker, zanim dokonasz wyboru.
CO JEST W ZESTAWIE
Siedmiu klientów, pięć rodzin protokołów
Każdy z nich to komponent niewizualny, który umieszczasz na formularzu albo tworzysz w kodzie. Podłączasz nośnik przez właściwość Client, podpinasz zdarzenia protokołu, a potem wywołujesz jego własne polecenia. Nazewnictwo jest spójne we wszystkich siedmiu, więc opanowanie jednego prowadzi cię niemal przez całą resztę.
MQTT1 komponent
Publikowanie, subskrypcja i cały mechanizm QoS
TsgcWSPClient_MQTT obejmuje MQTT 3.1.1 i MQTT 5.0 za jedną właściwością MQTTVersion. QoS 0, 1 i 2 z wymianą PUBACK, PUBREC, PUBREL i PUBCOMP wystawioną jako zdarzenia, a nie ukrytą, wiadomości zachowane, Last Will and Testament, subskrypcje z symbolami wieloznacznymi i sesje z możliwością wznowienia. Wersja 5 dodaje kody przyczyn, właściwości użytkownika, aliasy tematów, subskrypcje współdzielone oraz wymianę AUTH dla schematów typu wyzwanie i odpowiedź.
TsgcWSPClient_AMQP mówi w AMQP 0.9.1, protokole, dla którego zbudowano RabbitMQ: kanały, deklarowanie wymian i kolejek, powiązania, konsumenci, potwierdzenia publikującego, QoS prefetch i transakcje. TsgcWSPClient_AMQP1 mówi w AMQP 1.0, standardzie OASIS i ISO/IEC 19464 stojącym za Azure Service Bus i Event Hubs: kontenery, sesje, łącza nadawcze i odbiorcze, kontrola przepływu oparta na kredytach, SASL oraz funkcje pomocnicze tokenów Claims-Based Security. Inny format sieciowy, inny model obiektowy, dlatego sgcMQ dostarcza osobny komponent dla każdego, zamiast udawać, że jedno API pasuje do obu.
TsgcWSPClient_Kafka mówi protokołem sieciowym Kafka przez TCP, wraz z formatem wsadu rekordów v2. Nie ma przed nim proxy REST ani librdkafka pod spodem. Publikuj pojedyncze rekordy albo wsady z wybranym poziomem potwierdzeń i kompresją gzip, konsumuj przez grupę, w której wykrywanie koordynatora, dołączanie, synchronizacja, heartbeat i równoważenie są obsługiwane za ciebie, albo czytaj partycję bezpośrednio po offsecie. Zatwierdzanie offsetów, tworzenie i usuwanie tematów, listowanie grup oraz badanie możliwości brokera to wszystko pełnoprawne wywołania.
TsgcWSPClient_STOMP obsługuje STOMP 1.0, 1.1 i 1.2: SEND, SUBSCRIBE, UNSUBSCRIBE, ACK, NACK, potwierdzenia odbioru, dwukierunkowy heart-beating oraz ramki transakcji BEGIN, COMMIT i ABORT, przy czym akceptowane wersje zgłaszasz przez Versions. Dwaj potomkowie zamieniają konwencje adresowania brokerów w nazwane metody: RabbitMQ dostaje funkcje pomocnicze /queue, /topic, /exchange, /amq/queue i /temp-queue, a ActiveMQ funkcje pomocnicze dla kolejek i tematów oraz właściwość ActiveMQ_Options dla własnych nagłówków brokera.
sgcMQ implementuje specyfikacje, zamiast opakowywać SDK dostawcy, więc kandydatem jest wszystko, co mówi tymi protokołami w sieci. Ten sam komponent działa z brokerem hostowanym u ciebie i z zarządzaną usługą w chmurze bez zmiany kodu, a wymiana brokera to host, port i zestaw poświadczeń.
R
RabbitMQTsgcWSPClient_AMQP
Natywnie AMQP 0.9.1. Wtyczki STOMP i MQTT też są osiągalne, każda przez własny komponent.
K
Apache KafkaTsgcWSPClient_Kafka
Własny protokół binarny brokera na porcie 9092 oraz każdy broker zgodny z protokołem sieciowym Kafka.
M
Eclipse MosquittoTsgcWSPClient_MQTT
Referencyjny lekki broker MQTT, zwyczajnie na porcie 1883 albo z TLS na 8883.
H
HiveMQTsgcWSPClient_MQTT
Pełne MQTT 5.0, wraz z subskrypcjami współdzielonymi i właściwościami użytkownika.
E
EMQXTsgcWSPClient_MQTT
MQTT 3.1.1 i 5.0, hostowane u ciebie albo w chmurze dostawcy.
A
Apache ActiveMQTsgcWSPClient_STOMP_ActiveMQ
STOMP na porcie 61613 albo AMQP 1.0 wobec Artemis przez komponent AMQP 1.0.
AZ
Azure Service BusTsgcWSPClient_AMQP1
AMQP 1.0 z funkcjami pomocniczymi Claims-Based Security, a Event Hubs przez ten sam komponent.
AW
AWS IoT CoreTsgcWSPClient_MQTT
MQTT przez TLS z certyfikatami klienta, konfigurowane przez TLSOptions nośnika.
TRANSPORT
Jeden nośnik pod każdym protokołem
Przypisz TsgcTCPClient do właściwości Client komponentu protokołu, a ramki trafią prosto na gniazdo. Szyfrowanie, przechodzenie przez proxy, IPv6 i ponowne łączenie to ustawienia tego nośnika, więc konfigurujesz je raz i zachowują się identycznie niezależnie od tego, czy protokołem nad nimi jest MQTT, AMQP, Kafka czy STOMP.
MQTT 3.1.1 i 5.0TsgcWSPClient_MQTT
TCP1883Domyślny nasłuch MQTT.
TLS8883Włącz TLS na nośniku.
AMQP 0.9.1TsgcWSPClient_AMQP
TCP5672Domyślny nasłuch RabbitMQ.
TLS5671Nasłuch amqps.
AMQP 1.0TsgcWSPClient_AMQP1
TCP5672Ten sam numer portu, inny protokół.
TLS5671To, czego oczekuje Azure Service Bus.
Apache KafkaTsgcWSPClient_Kafka
TCP9092Nasłuch nieszyfrowany.
TLS9093Tak, jak skonfigurowano własny nasłuch SSL brokera.
Ogólny TsgcWSPClient_STOMP również używa portu 61613, wobec dowolnego brokera obsługującego STOMP. To są przyjęte wartości domyślne, a Port nośnika przyjmuje to, na czym faktycznie nasłuchuje twoje wdrożenie.
TLS tak, jak wolisz
TLSOptions.IOHandler wybiera OpenSSL dla kompilacji wieloplatformowych albo SChannel na Windows, gdy wolisz w ogóle nie dostarczać plików binarnych OpenSSL. Wzajemne TLS odczytuje certyfikat klienta z pliku PEM, pakietu PKCS#12 albo magazynu certyfikatów Windows.
Ponowne łączenie i keep-alive
WatchDog nośnika łączy się ponownie po zerwaniu połączenia, z konfigurowalnym interwałem i liczbą prób, a każdy protokół dokłada własny mechanizm podtrzymania: pingi keep-alive MQTT, heartbeaty AMQP, heart-beating STOMP i heartbeaty grup konsumentów Kafka.
Serwery proxy i IPv6
Obsługa proxy HTTP CONNECT znajduje się na nośniku, więc broker za firmowym proxy jest osiągalny, a adres brokera w IPv6 nie wymaga dodatkowej konfiguracji.
Zdarzenia, a nie pętla odpytywania
Odczyt działa we własnym wątku, a przychodzące ramki trafiają jako typowane zdarzenia: OnMQTTPublish, OnAMQPBasicDeliver, OnKafkaMessage, OnSTOMPMessage. Ustaw opcje powiadomień nośnika, aby przekazywać je do głównego wątku w kodzie VCL i FMX.
SZYBKI START
Subskrybuj i publikuj przez MQTT
Połącz TsgcTCPClient z komponentem protokołu, ustaw poświadczenia, podepnij zdarzenia, a potem wywołaj polecenia protokołu. Ten sam schemat w Object Pascal i C++ Builder oraz ten sam schemat dla pozostałych sześciu komponentów.
Pakiet komunikacyjny nie ma żadnych ograniczeń platformowych. Wszystkich siedmiu klientów i nośnik pod nimi jest zarejestrowanych dla każdej platformy, jaką generuje kompilator, od usługi Windows po telefon z Androidem, z jednego drzewa źródeł.
Wszystkich 7 klientów protokołówMQTT, AMQP 0.9.1, AMQP 1.0, Kafka i trzej klienci STOMP
Windows Win32Windows Win64Linux64macOSiOSAndroid
Nośnik TsgcTCPClientGniazdo, TLS, proxy, IPv6 i ponowne łączenie przez WatchDog
Windows Win32Windows Win64Linux64macOSiOSAndroid
Silnik TLSWybierany przez TLSOptions.IOHandler
OpenSSL, każda platformaSChannel, tylko Windows
Obsługa IDEJedno drzewo źródeł, pakiety projektowe dla każdej wersji
Delphi od 7 do 13C++ Builder
Nośnik WebSocketMQTT przez WebSocket, Web-STOMP i podobne
sgcMQ jest licencjonowany samodzielnie, już od €249 dla jednego programisty. Wszystkie licencje obejmują pełny kod źródłowy, 1 rok aktualizacji oraz od 50% do 70% rabatu na odnowienie: 50% przy odnowieniu jednego pakietu, 60% przy dwóch, 70% przy trzech lub więcej. sgcAI i sgcMQ liczą się każdy jako jeden pakiet.
sgcMQ
€249
Dostępne licencje Single, Team i Site.
Klient MQTT 3.1.1 i 5.0
Klienci AMQP 0.9.1 i AMQP 1.0
Klient Apache Kafka
Klienci STOMP, RabbitMQ i ActiveMQ
Środowisko uruchomieniowe sgcWebSockets Core w zestawie
Delphi i C++ Builder, wszystkie sześć platform
Pełny kod źródłowy
1 rok aktualizacji
★ Nie wymaga licencji bazowej
sgcMQ zawiera środowisko uruchomieniowe sgcWebSockets Core, więc nie ma nic więcej do kupienia.
Zamówienie zawiera dwie pozycje: uprawnienie do środowiska uruchomieniowego sgcWebSockets Core, naliczane jako zero, oraz sam pakiet sgcMQ. Pełne szczegóły cennika.
3,000+Developers
20+Years
761+Components
30+API Integrations
5Platforms
30-dniowa gwarancja zwrotu pieniędzyNie jesteś zadowolony? Poproś o pełny zwrot pieniędzy w ciągu 30 dni od zakupu. Zobacz politykę zwrotów
Porozmawiaj ze swoim brokerem z Delphi
MQTT, AMQP, Kafka i STOMP w jednym pakiecie, zaimplementowane natywnie, ze środowiskiem uruchomieniowym w zestawie i pełnym kodem źródłowym. Windows, Linux, macOS, iOS i Android z tego samego kodu.