sgcMQ: clientes MQTT, AMQP, Kafka e STOMP para Delphi e C++ BuilderPular para o conteúdo
Produto autônomoWindows, Linux, macOS, iOS e Android
sgcMQ: clientes MQTT, AMQP, Kafka e STOMP para Delphi e C++ Builder
Sete componentes cliente falam MQTT 3.1.1 e 5.0, AMQP 0.9.1, AMQP 1.0, o protocolo de rede do Apache Kafka e STOMP 1.0 até 1.2, com clientes STOMP específicos para RabbitMQ e ActiveMQ. Cada formato de rede é interpretado e escrito em Object Pascal dentro da biblioteca, então não há biblioteca cliente externa, nem DLL, nem wrapper para distribuir. O sgcMQ é autônomo: ele já traz embutido o runtime sgcWebSockets Core sobre o qual é construído, então não há licença base para comprar.
Um transporteTsgcTCPClientTCP puro ou TLS, o mesmo socket para todos os protocolos
MQTTTsgcWSPClient_MQTT
AMQP 0.9.1TsgcWSPClient_AMQP
AMQP 1.0TsgcWSPClient_AMQP1
KafkaTsgcWSPClient_Kafka
STOMPTsgcWSPClient_STOMP
STOMP para RabbitMQTsgcWSPClient_STOMP_RabbitMQ
STOMP para ActiveMQTsgcWSPClient_STOMP_ActiveMQ
7Componentes clienteUma página na paleta de componentes
5Famílias de protocolosMQTT, AMQP 0.9.1, AMQP 1.0, Kafka, STOMP
6Plataformas de destinoWin32, Win64, Linux64, macOS, iOS, Android
0Bibliotecas externasSem librdkafka, sem Paho, sem Qpid, sem DLL
1TransporteUm único TsgcTCPClient atende a todos
ANTES DE COMPRAR
Duas coisas que vale saber antes
O que o sgcMQ exige de você e como os bytes chegam ao broker. As duas respostas são curtas.
★ Nenhuma licença base necessária
O sgcMQ é autossuficiente
Ele não se apoia em um produto base. Tudo o que os componentes precisam vem embutido no sgcMQ: o runtime sgcWebSockets Core, o transporte TCP TsgcTCPClient, a camada TLS e os utilitários de JSON. Um SKU, um instalador, nada mais para comprar.
O código-fonte completo acompanha todas as licenças, então as implementações dos protocolos podem ser depuradas passo a passo no seu próprio depurador, em vez de sumirem dentro de um binário.
Escopo de transporte
O sgcMQ é TCP puro e TLS
Todo protocolo do pacote trafega sobre um socket bruto, aberto puro ou envolvido em TLS. Isso cobre as portas nativas do broker, que é como MQTT, AMQP, Kafka e STOMP normalmente são implantados, e não precisa de nada além do que já vem na caixa.
Rodar um protocolo sobre WebSocket, por exemplo MQTT sobre WebSocket ou Web-STOMP, exige o cliente WebSocket, e ele vem com o sgcWebSockets, não com o sgcMQ. Verifique qual transporte o seu broker expõe antes de escolher.
O QUE VEM NA CAIXA
Sete clientes, cinco famílias de protocolos
Cada um é um componente não visual que você solta em um formulário ou cria em código. Você conecta o transporte pela propriedade Client, liga os eventos do protocolo e depois chama os verbos do próprio protocolo. A nomenclatura é consistente nos sete, então aprender um já leva você quase até o fim dos demais.
MQTT1 componente
Publicar, assinar e toda a mecânica de QoS
TsgcWSPClient_MQTT cobre MQTT 3.1.1 e MQTT 5.0 atrás de uma única propriedade MQTTVersion. QoS 0, 1 e 2, com a troca de PUBACK, PUBREC, PUBREL e PUBCOMP exposta como eventos em vez de escondida, mensagens retidas, Last Will and Testament, assinaturas com curinga e sessões retomáveis. A versão 5 acrescenta códigos de motivo, propriedades de usuário, aliases de tópico, assinaturas compartilhadas e o ciclo AUTH para esquemas de desafio e resposta.
Dois protocolos que compartilham o nome e nada mais
TsgcWSPClient_AMQP fala AMQP 0.9.1, o protocolo para o qual o RabbitMQ foi construído: canais, declaração de exchanges e filas, vínculos, consumidores, confirmações do publicador, QoS de prefetch e transações. TsgcWSPClient_AMQP1 fala AMQP 1.0, o padrão OASIS e ISO/IEC 19464 por trás do Azure Service Bus e do Event Hubs: containers, sessões, links de envio e recebimento, controle de fluxo por crédito, SASL e os utilitários de token do Claims-Based Security. Formato de rede diferente, modelo de objetos diferente, então o sgcMQ entrega um componente para cada um em vez de fingir que uma única API serve para os dois.
TsgcWSPClient_Kafka fala o protocolo de rede do Kafka sobre TCP, incluindo o formato de lote de registros v2. Não há proxy REST na frente nem librdkafka por baixo. Produza registros isolados ou lotes com um nível de acks escolhido e compressão gzip, consuma por um grupo em que a descoberta do coordenador, a entrada, a sincronização, o heartbeat e o rebalanceamento são tratados para você, ou leia uma partição diretamente por offset. Commit de offset, criação e exclusão de tópicos, listagem de grupos e a sondagem de recursos do broker são todas chamadas de primeira classe.
TsgcWSPClient_STOMP trata STOMP 1.0, 1.1 e 1.2: SEND, SUBSCRIBE, UNSUBSCRIBE, ACK, NACK, recibos, heartbeat bidirecional e os frames de transação BEGIN, COMMIT e ABORT, com as versões aceitas anunciadas por Versions. Os dois descendentes transformam as convenções de destino dos brokers em métodos nomeados: o RabbitMQ ganha utilitários /queue, /topic, /exchange, /amq/queue e /temp-queue, e o ActiveMQ ganha utilitários de fila e tópico mais uma propriedade ActiveMQ_Options para os cabeçalhos próprios do broker.
Protocolos publicados, então o broker é escolha sua
O sgcMQ implementa as especificações em vez de encapsular o SDK de um fornecedor, então qualquer coisa que fale esses protocolos na rede é candidata. O mesmo componente funciona contra um broker auto-hospedado e um serviço gerenciado na nuvem sem mudança de código, e trocar de broker é uma questão de host, porta e um conjunto de credenciais.
R
RabbitMQTsgcWSPClient_AMQP
AMQP 0.9.1 de forma nativa. Os plugins STOMP e MQTT também são acessíveis, cada um com o seu próprio componente.
K
Apache KafkaTsgcWSPClient_Kafka
O protocolo binário do próprio broker na porta 9092, e qualquer broker compatível com o protocolo de rede do Kafka.
M
Eclipse MosquittoTsgcWSPClient_MQTT
O broker MQTT leve de referência, puro na 1883 ou com TLS na 8883.
H
HiveMQTsgcWSPClient_MQTT
MQTT 5.0 completo, incluindo assinaturas compartilhadas e propriedades de usuário.
E
EMQXTsgcWSPClient_MQTT
MQTT 3.1.1 e 5.0, auto-hospedado ou na nuvem do fornecedor.
A
Apache ActiveMQTsgcWSPClient_STOMP_ActiveMQ
STOMP na 61613, ou AMQP 1.0 contra o Artemis com o componente AMQP 1.0.
AZ
Azure Service BusTsgcWSPClient_AMQP1
AMQP 1.0 com os utilitários de Claims-Based Security, e o Event Hubs no mesmo componente.
AW
AWS IoT CoreTsgcWSPClient_MQTT
MQTT sobre TLS com certificados de cliente, configurado pelas TLSOptions do transporte.
TRANSPORTE
Um transporte sob todos os protocolos
Atribua um TsgcTCPClient à propriedade Client do componente de protocolo e os frames vão direto para o socket. Criptografia, travessia de proxy, IPv6 e reconexão são configurações desse transporte, então são definidas uma única vez e se comportam de forma idêntica, esteja acima delas o MQTT, o AMQP, o Kafka ou o STOMP.
MQTT 3.1.1 e 5.0TsgcWSPClient_MQTT
TCP1883O listener MQTT padrão.
TLS8883Ative TLS no transporte.
AMQP 0.9.1TsgcWSPClient_AMQP
TCP5672O listener padrão do RabbitMQ.
TLS5671O listener amqps.
AMQP 1.0TsgcWSPClient_AMQP1
TCP5672O mesmo número de porta, protocolo diferente.
TLS5671O que o Azure Service Bus espera.
Apache KafkaTsgcWSPClient_Kafka
TCP9092O listener em texto puro.
TLS9093O que estiver configurado como listener SSL do próprio broker.
STOMP, plugin do RabbitMQTsgcWSPClient_STOMP_RabbitMQ
TCP61613A porta STOMP nativa.
TLS61614O listener criptografado do plugin.
STOMP, ActiveMQTsgcWSPClient_STOMP_ActiveMQ
TCP61613O conector STOMP nativo.
TLS61612O conector stomp+ssl do broker.
O TsgcWSPClient_STOMP genérico também usa a 61613, contra qualquer broker compatível com STOMP. Esses são os padrões convencionais, e a propriedade Port do transporte aceita a porta que a sua implantação realmente escuta.
TLS do jeito que você prefere
TLSOptions.IOHandler escolhe OpenSSL para builds multiplataforma, ou SChannel no Windows quando você preferir não distribuir nenhum binário do OpenSSL. O TLS mútuo lê um certificado de cliente a partir de um arquivo PEM, de um pacote PKCS#12 ou do repositório de certificados do Windows.
Reconexão e keep-alive
O WatchDog do transporte reconecta depois de uma queda do link, com intervalo e número de tentativas configuráveis, e cada protocolo acrescenta a própria verificação de vitalidade: pings de keep-alive do MQTT, heartbeats do AMQP, heartbeat do STOMP e heartbeats do grupo de consumidores do Kafka.
Proxies e IPv6
O suporte a proxy HTTP CONNECT está no transporte, então um broker atrás de um proxy corporativo fica acessível, e um endereço de broker IPv6 não precisa de configuração extra.
Eventos, não um laço de polling
A leitura roda na própria thread e os frames de entrada chegam como eventos tipados: OnMQTTPublish, OnAMQPBasicDeliver, OnKafkaMessage, OnSTOMPMessage. Ajuste as configurações de notificação do transporte para levá-los à thread principal em código VCL e FMX.
INÍCIO RÁPIDO
Assine e publique por MQTT
Combine um TsgcTCPClient com o componente de protocolo, defina as credenciais, ligue os eventos e depois chame os verbos do protocolo. O mesmo formato em Object Pascal e C++ Builder, e o mesmo formato para os outros seis componentes.
O pacote de mensageria não tem nenhuma restrição de plataforma. Todos os sete clientes e o transporte por baixo deles são registrados para cada destino que o compilador produz, de um serviço Windows a um aparelho Android, a partir de uma única árvore de código-fonte.
Todos os 7 clientes de protocoloMQTT, AMQP 0.9.1, AMQP 1.0, Kafka e os três clientes STOMP
Windows Win32Windows Win64Linux64macOSiOSAndroid
O transporte TsgcTCPClientSocket, TLS, proxy, IPv6 e reconexão pelo WatchDog
Windows Win32Windows Win64Linux64macOSiOSAndroid
Mecanismo de TLSEscolhido com TLSOptions.IOHandler
OpenSSL, todos os destinosSChannel, somente Windows
Suporte a IDEUma única árvore de código-fonte, com pacotes de tempo de projeto por versão
Delphi 7 a 13C++ Builder
Transporte WebSocketMQTT sobre WebSocket, Web-STOMP e similares
O sgcMQ é licenciado por conta própria, a partir de €249 para um único desenvolvedor. Todas as licenças incluem código-fonte completo, 1 ano de atualizações e de 50% a 70% de desconto na renovação: 50% ao renovar um pacote, 60% para dois, 70% para três ou mais. sgcAI e sgcMQ contam cada um como um pacote.
sgcMQ
€249
Licenças Single, Team e Site disponíveis.
Cliente MQTT 3.1.1 e 5.0
Clientes AMQP 0.9.1 e AMQP 1.0
Cliente Apache Kafka
Clientes STOMP, RabbitMQ e ActiveMQ
Runtime sgcWebSockets Core incluído
Delphi e C++ Builder, todos os seis destinos
Código-fonte completo
1 ano de atualizações
★ Nenhuma licença base necessária
O sgcMQ inclui o runtime sgcWebSockets Core, então não há mais nada para comprar.
O checkout lista dois itens: o direito de uso do runtime sgcWebSockets Core, cobrado a zero, e o próprio pacote sgcMQ. Detalhes completos de preços.
3,000+Developers
20+Years
761+Components
30+API Integrations
5Platforms
Garantia de reembolso de 30 diasNão ficou satisfeito? Solicite o reembolso total em até 30 dias após a compra. Ver política de reembolso
Converse com o seu broker a partir do Delphi
MQTT, AMQP, Kafka e STOMP em um único pacote, implementados nativamente, com o runtime embutido e o código-fonte completo na caixa. Windows, Linux, macOS, iOS e Android a partir do mesmo código.