Cliente STOMP para Delphi

Simple Text Oriented Messaging Protocol para mensageria interoperável. Conecte-se ao RabbitMQ, ao ActiveMQ e a qualquer broker compatível com STOMP a partir das suas aplicações Delphi.

Resposta rápida: o sgcWebSockets adiciona mensageria STOMP ao TsgcWebSocketClient através de sua propriedade STOMP, para que aplicativos Delphi e C++ Builder possam assinar, enviar, executar transações e negociar heart-beats sobre WebSocket com RabbitMQ, ActiveMQ ou qualquer broker STOMP.

O que é o STOMP?

O STOMP oferece um protocolo de mensageria simples, baseado em texto, que permite a interoperabilidade entre diferentes brokers de mensagens e implementações de cliente.

Mensageria simples e interoperável

O STOMP foi projetado para ser simples e fácil de implementar. Ao contrário dos protocolos binários, o STOMP usa um formato de frame baseado em texto, legível por humanos e fácil de depurar. Ele define um pequeno conjunto de comandos (CONNECT, SEND, SUBSCRIBE, UNSUBSCRIBE, ACK, NACK, BEGIN, COMMIT, ABORT e DISCONNECT) que cobrem todos os padrões comuns de mensageria. O sgcWebSockets implementa o protocolo STOMP sobre conexões WebSocket, permitindo que clientes de navegador e nativos se comuniquem com brokers de mensagens corporativos.

  • Protocolo baseado em texto, legível por humanos
  • Funciona com qualquer broker compatível com STOMP
  • Conjunto de comandos simples para desenvolvimento rápido
  • Roda sobre WebSocket para compatibilidade com navegadores
SEND destination:/queue CLIENTE BROKER

Recursos do STOMP

Mensageria corporativa simplificada com um protocolo limpo e baseado em texto.

Protocolo baseado em texto

Frames legíveis por humanos tornam a depuração e o desenvolvimento diretos. Cada frame consiste em um comando, cabeçalhos e um corpo opcional.

RabbitMQ & ActiveMQ

Totalmente compatível com os brokers de mensagens RabbitMQ e ActiveMQ, dando acesso à infraestrutura de mensageria corporativa.

CONNECT/SEND/SUBSCRIBE

Conjunto de comandos limpo que cobre o gerenciamento de conexão, o envio de mensagens e a assinatura de tópicos, com semântica clara.

Confirmação de recebimento

Solicite confirmações de recebimento ao broker para garantir que suas mensagens foram recebidas e processadas com sucesso.

Suporte a transações

Agrupe várias operações SEND e ACK em transações atômicas com os comandos BEGIN, COMMIT e ABORT.

Negociação de heart-beat

Mecanismo automático de keep-alive para detectar conexões interrompidas e manter sessões persistentes com o broker.

Casos de uso do STOMP

Cenários de mensageria corporativa em que o STOMP oferece comunicação simples e confiável.

Filas de mensagens corporativas

Conecte aplicações Delphi a filas de mensagens corporativas para uma comunicação assíncrona e confiável entre sistemas.

Comunicação entre microsserviços

Habilite a comunicação fracamente acoplada entre microsserviços usando mensageria baseada em tópicos e padrões de fila.

Arquiteturas orientadas a eventos

Crie sistemas orientados a eventos em que os componentes reagem a eventos publicados por meio de brokers de mensagens STOMP.

Mensageria multiplataforma

Integre a comunicação entre aplicações escritas em diferentes linguagens e frameworks por meio de um protocolo comum.

Exemplo de STOMP em Delphi

Conecte-se a um broker STOMP, assine um destino e envie mensagens.

uses
  sgcWebSocket_Client, sgcWebSocket_Types;

var
  WSClient: TsgcWebSocketClient;

procedure TForm1.FormCreate(Sender: TObject);
begin
  WSClient := TsgcWebSocketClient.Create(nil);
  WSClient.Host := 'broker.example.com';
  WSClient.Port := 15674;
  WSClient.Specifications.RFC6455.Protocol := 'stomp';

  // Configure STOMP protocol
  WSClient.STOMP.Enabled := True;
  WSClient.STOMP.Authentication.Username := 'guest';
  WSClient.STOMP.Authentication.Password := 'guest';
  WSClient.STOMP.VirtualHost := '/';
  WSClient.STOMP.HeartBeat.Outgoing := 10000;
  WSClient.STOMP.HeartBeat.Incoming := 10000;

  // Set up event handlers
  WSClient.OnSTOMPConnected := OnSTOMPConnected;
  WSClient.OnSTOMPMessage := OnSTOMPMessage;
  WSClient.OnSTOMPReceipt := OnSTOMPReceipt;
end;

procedure TForm1.ButtonConnectClick(Sender: TObject);
begin
  WSClient.Active := True;
end;

procedure TForm1.OnSTOMPConnected(Sender: TObject);
begin
  // Subscribe to a queue
  WSClient.STOMP.Subscribe('/queue/orders');
end;

procedure TForm1.OnSTOMPMessage(Sender: TObject;
  aDestination, aBody: string);
begin
  // Process incoming messages
  Memo1.Lines.Add(aDestination + ': ' + aBody);
end;

procedure TForm1.ButtonSendClick(Sender: TObject);
begin
  // Send a message to a destination
  WSClient.STOMP.Send('/queue/orders',
    '{"orderId": 12345, "status": "new"}');
end;

Perguntas frequentes sobre STOMP

Dúvidas comuns sobre como conectar aplicativos Delphi e C++ Builder a brokers STOMP.

Coloque um TsgcWebSocketClient, defina seu Host e Port, defina Specifications.RFC6455.Protocol como 'stomp' e, em seguida, habilite a propriedade STOMP. Após conectar, você chama STOMP.Subscribe para receber frames e STOMP.Send para publicar em um destino. O componente implementa os comandos STOMP CONNECT, SEND, SUBSCRIBE, ACK, NACK, BEGIN, COMMIT, ABORT e DISCONNECT.
O client funciona com RabbitMQ e ActiveMQ, e com qualquer message broker compatível com STOMP. Como o STOMP é um protocolo de transmissão simples e baseado em texto, o mesmo componente se comunica com qualquer servidor que implemente a especificação STOMP.
Sim. Você pode agrupar operações SEND e ACK em transações atômicas com BEGIN, COMMIT e ABORT, solicitar confirmações de recebimento do broker e configurar a negociação de heart-beat através de STOMP.HeartBeat.Outgoing e STOMP.HeartBeat.Incoming para manter a conexão ativa e detectar sessões interrompidas. O STOMP roda sobre o transporte WebSocket para mensageria compatível com navegadores.
O sgcWebSockets suporta do Delphi 7 até o mais recente lançamento do Delphi e as versões correspondentes do C++ Builder, no Windows, macOS, Linux, iOS e Android. Baixe a versão de avaliação gratuita para avaliar o client STOMP no seu próprio projeto.
Melhor custo-benefício: All-AccessTodos os produtos da eSeGeCe, com Suporte Premium incluído, a partir de €1,059/ano.
Ver preços do All-Access

Ready to Get Started with STOMP?

Baixe a versão de avaliação gratuita e conecte-se a brokers de mensagens corporativos em minutos.