sgcMQ: client MQTT, AMQP, Kafka e STOMP per Delphi e C++ BuilderVai al contenuto
Prodotto autonomoWindows, Linux, macOS, iOS & Android
sgcMQ: client MQTT, AMQP, Kafka e STOMP per Delphi e C++ Builder
Sette componenti client parlano MQTT 3.1.1 e 5.0, AMQP 0.9.1, AMQP 1.0, il protocollo binario di Apache Kafka e STOMP dalla 1.0 alla 1.2, con client STOMP specifici per RabbitMQ e ActiveMQ. Ogni formato binario viene interpretato e scritto in Object Pascal dentro la libreria, quindi non c'è nessuna libreria client esterna, nessuna DLL e nessun wrapper da distribuire. sgcMQ è autonomo, include il runtime sgcWebSockets Core su cui è costruito, quindi non c'è nessuna licenza base da comprare.
1Vettore di trasportoUn solo TsgcTCPClient li serve tutti
PRIMA DI ACQUISTARE
Due cose che vale la pena sapere subito
Cosa richiede sgcMQ da te, e come i byte arrivano al broker. Entrambe le risposte sono brevi.
★ Nessuna licenza base richiesta
sgcMQ è autosufficiente
Non poggia su un prodotto base. Tutto ciò di cui i componenti hanno bisogno è incluso dentro sgcMQ: il runtime sgcWebSockets Core, il vettore TCP TsgcTCPClient, il livello TLS e le funzioni di supporto JSON. Un solo SKU, un solo installer, niente altro da comprare.
Il codice sorgente completo è incluso in ogni licenza, così le implementazioni dei protocolli si possono seguire passo passo nel tuo debugger invece di sparire dentro un binario.
Ambito del trasporto
sgcMQ è TCP semplice e TLS
Ogni protocollo del pacchetto viaggia su un socket grezzo, aperto in chiaro o avvolto in TLS. Questo copre le porte native dei broker, che è il modo in cui MQTT, AMQP, Kafka e STOMP vengono normalmente installati, e non richiede niente oltre a quello che c'è nella confezione.
Far girare invece un protocollo su WebSocket, per esempio MQTT su WebSocket o Web-STOMP, richiede il client WebSocket, e quello è distribuito con sgcWebSockets, non con sgcMQ. Controlla quale trasporto espone il tuo broker prima di scegliere.
COSA C'È NELLA CONFEZIONE
Sette client, cinque famiglie di protocolli
Ognuno è un componente non visuale che metti su una form o crei da codice. Colleghi il vettore tramite la proprietà Client, agganci gli eventi del protocollo, poi chiami i verbi propri del protocollo. La denominazione è coerente su tutti e sette, quindi impararne uno ti porta a buon punto con gli altri.
MQTT1 componente
Pubblica, sottoscrivi e tutto il meccanismo del QoS
TsgcWSPClient_MQTT copre MQTT 3.1.1 e MQTT 5.0 dietro un'unica proprietà MQTTVersion. QoS 0, 1 e 2 con lo scambio PUBACK, PUBREC, PUBREL e PUBCOMP esposto come eventi invece che nascosto, messaggi retained, Last Will and Testament, sottoscrizioni con caratteri jolly e sessioni riprendibili. La versione 5 aggiunge reason code, user property, alias dei topic, sottoscrizioni condivise e lo scambio AUTH per gli schemi a sfida e risposta.
Due protocolli che condividono un nome e nient'altro
TsgcWSPClient_AMQP parla AMQP 0.9.1, il protocollo per cui RabbitMQ è stato costruito: canali, dichiarazione di exchange e code, binding, consumer, conferme del publisher, prefetch QoS e transazioni. TsgcWSPClient_AMQP1 parla AMQP 1.0, lo standard OASIS e ISO/IEC 19464 dietro Azure Service Bus ed Event Hubs: container, sessioni, link sender e receiver, controllo di flusso a credito, SASL e le funzioni di supporto per i token della Claims-Based Security. Formato binario diverso, modello a oggetti diverso, quindi sgcMQ distribuisce un componente per ciascuno invece di fingere che una sola API vada bene per entrambi.
TsgcWSPClient_Kafka parla il protocollo binario di Kafka su TCP, incluso il formato record batch v2. Davanti non c'è nessun proxy REST e sotto non c'è nessuna librdkafka. Produci singoli record o batch con un livello di acks scelto da te e compressione gzip, consuma tramite un gruppo in cui la scoperta del coordinatore, il join, la sincronizzazione, gli heartbeat e il rebalance sono gestiti per te, oppure leggi una partizione direttamente per offset. Il commit degli offset, la creazione e la cancellazione dei topic, l'elenco dei gruppi e il sondaggio delle capability del broker sono tutte chiamate di prima classe.
TsgcWSPClient_STOMP gestisce STOMP 1.0, 1.1 e 1.2: SEND, SUBSCRIBE, UNSUBSCRIBE, ACK, NACK, ricevute, heart-beating bidirezionale e i frame di transazione BEGIN, COMMIT e ABORT, con le versioni accettate dichiarate tramite Versions. I due discendenti trasformano le convenzioni di destinazione dei broker in metodi con un nome: RabbitMQ ottiene le funzioni per /queue, /topic, /exchange, /amq/queue e /temp-queue, ActiveMQ ottiene le funzioni per code e topic più una proprietà ActiveMQ_Options per gli header propri del broker.
Protocolli pubblicati, quindi il broker lo scegli tu
sgcMQ implementa le specifiche invece di incapsulare l'SDK di un fornitore, quindi qualsiasi cosa parli questi protocolli sul filo è un candidato. Lo stesso componente funziona contro un broker che ospiti tu e un servizio cloud gestito senza modifiche al codice, e cambiare broker è questione di un host, una porta e un insieme di credenziali.
R
RabbitMQTsgcWSPClient_AMQP
AMQP 0.9.1 in modo nativo. Anche i plugin STOMP e MQTT sono raggiungibili, ciascuno con il proprio componente.
K
Apache KafkaTsgcWSPClient_Kafka
Il protocollo binario proprio del broker sulla 9092, e qualsiasi broker compatibile con il protocollo Kafka.
M
Eclipse MosquittoTsgcWSPClient_MQTT
Il broker MQTT leggero di riferimento, in chiaro sulla 1883 o in TLS sulla 8883.
H
HiveMQTsgcWSPClient_MQTT
MQTT 5.0 completo, incluse le sottoscrizioni condivise e le user property.
E
EMQXTsgcWSPClient_MQTT
MQTT 3.1.1 e 5.0, ospitato da te o sul cloud del fornitore.
A
Apache ActiveMQTsgcWSPClient_STOMP_ActiveMQ
STOMP sulla 61613, oppure AMQP 1.0 contro Artemis con il componente AMQP 1.0.
AZ
Azure Service BusTsgcWSPClient_AMQP1
AMQP 1.0 con le funzioni di supporto per la Claims-Based Security, ed Event Hubs sullo stesso componente.
AW
AWS IoT CoreTsgcWSPClient_MQTT
MQTT su TLS con certificati client, configurati tramite le TLSOptions del vettore.
TRASPORTO
Un solo vettore sotto ogni protocollo
Assegna un TsgcTCPClient alla proprietà Client del componente di protocollo e i frame finiscono direttamente sul socket. Cifratura, attraversamento dei proxy, IPv6 e riconnessione sono impostazioni di quel vettore, quindi si configurano una volta sola e si comportano allo stesso modo che il protocollo sopra di loro sia MQTT, AMQP, Kafka o STOMP.
MQTT 3.1.1 e 5.0TsgcWSPClient_MQTT
TCP1883Il listener MQTT predefinito.
TLS8883Attiva TLS sul vettore.
AMQP 0.9.1TsgcWSPClient_AMQP
TCP5672Il listener predefinito di RabbitMQ.
TLS5671Il listener amqps.
AMQP 1.0TsgcWSPClient_AMQP1
TCP5672Stesso numero di porta, protocollo diverso.
TLS5671Quello che si aspetta Azure Service Bus.
Apache KafkaTsgcWSPClient_Kafka
TCP9092Il listener in chiaro.
TLS9093Qualunque sia la configurazione del listener SSL del broker.
Anche il TsgcWSPClient_STOMP generico usa la 61613, contro qualsiasi broker che supporti STOMP. Questi sono i valori predefiniti convenzionali, e la proprietà Port del vettore accetta qualunque porta la tua installazione stia effettivamente ascoltando.
TLS come preferisci
TLSOptions.IOHandler sceglie OpenSSL per le build multipiattaforma, oppure SChannel su Windows quando preferisci non distribuire affatto i binari di OpenSSL. Il TLS mutuo legge un certificato client da un file PEM, da un bundle PKCS#12 o dall'archivio certificati di Windows.
Riconnessione e keep-alive
Il WatchDog del vettore si riconnette dopo una caduta del collegamento con intervallo e numero di tentativi configurabili, e ogni protocollo aggiunge il proprio meccanismo di liveness: i ping di keep-alive di MQTT, gli heartbeat di AMQP, l'heart-beating di STOMP e gli heartbeat dei consumer group di Kafka.
Proxy e IPv6
Il supporto per i proxy HTTP CONNECT è sul vettore, così un broker dietro a un proxy aziendale resta raggiungibile, e un indirizzo di broker IPv6 non richiede nessuna configurazione aggiuntiva.
Eventi, non un ciclo di polling
La lettura gira su un thread dedicato e i frame in entrata arrivano come eventi tipizzati: OnMQTTPublish, OnAMQPBasicDeliver, OnKafkaMessage, OnSTOMPMessage. Imposta le opzioni di notifica del vettore per farli arrivare sul thread principale nel codice VCL e FMX.
GUIDA RAPIDA
Sottoscrivi e pubblica su MQTT
Abbina un TsgcTCPClient al componente di protocollo, imposta le credenziali, aggancia gli eventi, poi chiama i verbi del protocollo. La stessa struttura in Object Pascal e in C++ Builder, e la stessa struttura per gli altri sei componenti.
Il pacchetto di messaggistica non ha nessuna restrizione di piattaforma. Tutti e sette i client e il vettore sotto di loro sono registrati per ogni target che il compilatore produce, da un servizio Windows a uno smartphone Android, a partire da un unico albero dei sorgenti.
Tutti i 7 client di protocolloMQTT, AMQP 0.9.1, AMQP 1.0, Kafka e i tre client STOMP
Windows Win32Windows Win64Linux64macOSiOSAndroid
Il vettore TsgcTCPClientSocket, TLS, proxy, IPv6 e riconnessione con WatchDog
Windows Win32Windows Win64Linux64macOSiOSAndroid
Motore TLSScelto con TLSOptions.IOHandler
OpenSSL, ogni targetSChannel, solo Windows
Supporto IDEUn solo albero dei sorgenti, package di design-time per ogni versione
Da Delphi 7 a 13C++ Builder
Vettore WebSocketMQTT su WebSocket, Web-STOMP e simili
sgcMQ viene concesso in licenza da solo, a partire da €249 per un singolo sviluppatore. Tutte le licenze includono il codice sorgente completo, 1 anno di aggiornamenti e uno sconto sul rinnovo dal 50% al 70%: il 50% se rinnovi un pacchetto, il 60% con due, il 70% con tre o più. sgcAI e sgcMQ contano ciascuno come un pacchetto.
sgcMQ
€249
Licenze Single, Team e Site disponibili.
Client MQTT 3.1.1 & 5.0
Client AMQP 0.9.1 & AMQP 1.0
Client Apache Kafka
Client STOMP, RabbitMQ & ActiveMQ
Runtime sgcWebSockets Core incluso
Delphi & C++ Builder, tutti e sei i target
Codice sorgente completo
1 anno di aggiornamenti
★ Nessuna licenza base richiesta
sgcMQ include il runtime sgcWebSockets Core, quindi non c'è niente altro da comprare.
Il pagamento elenca due voci: il diritto d'uso del runtime sgcWebSockets Core, addebitato a zero, e il pacchetto sgcMQ stesso. Tutti i dettagli sui prezzi.
3,000+Developers
20+Years
761+Components
30+API Integrations
5Platforms
Garanzia soddisfatti o rimborsati di 30 giorniNon sei soddisfatto? Richiedi un rimborso completo entro 30 giorni dall'acquisto. Vedi la politica di rimborso
Dialoga con il tuo broker da Delphi
MQTT, AMQP, Kafka e STOMP in un solo package, implementati nativamente, con il runtime incluso e il codice sorgente completo nella confezione. Windows, Linux, macOS, iOS e Android dallo stesso codice.