Componente STOMP ActiveMQ Client: sgcMQ | eSeGeCe

STOMP ActiveMQ Client

TsgcWSPClient_STOMP_ActiveMQ è il client STOMP ottimizzato per Apache ActiveMQ. Aggiunge funzioni di supporto per code e topic sopra la denominazione delle destinazioni di ActiveMQ, oggetti header tipizzati su ogni evento e una proprietà ActiveMQ_Options per le impostazioni specifiche del broker di cui hanno bisogno le sottoscrizioni durevoli.

TsgcWSPClient_STOMP_ActiveMQ

Tutto quello che c'è nel client STOMP generico resta valido. Le aggiunte sono le funzioni di supporto per le destinazioni, gli eventi con nome ActiveMQ e le opzioni del broker.

Classe del componente

TsgcWSPClient_STOMP_ActiveMQ

Specifica

STOMP 1.0, 1.1 e 1.2

Trasporto

TCP (61613) o TLS (61612)

Linguaggi

Delphi, C++ Builder

Trasporto: TCP semplice e TLS. sgcMQ dialoga con ActiveMQ tramite TCP semplice e TLS. Il connettore STOMP-su-WebSocket di ActiveMQ è un endpoint WebSocket, quindi per raggiungerlo serve un package sgcWebSockets, che fornisce il client WebSocket.

Sottoscrivi una coda e pubblicaci sopra

Questo esempio usa la porta STOMP nativa di ActiveMQ, la 61613. Per un collegamento cifrato, attiva TLS sul vettore e usa il connettore stomp+ssl del broker sulla porta 61612.

uses
  sgcTCP_Client_WS, sgcWebSocket_Classes, sgcWebSocket_Protocols,
  sgcWebSocket_Protocol_STOMP_Broker_Client,
  sgcWebSocket_Protocol_STOMP_ActiveMQ_Client;

var
  TCPClient: TsgcTCPClient;
  STOMP: TsgcWSPClient_STOMP_ActiveMQ;
begin
  TCPClient := TsgcTCPClient.Create(nil);
  TCPClient.Host := 'broker.example.com';
  TCPClient.Port := 61613;

  STOMP := TsgcWSPClient_STOMP_ActiveMQ.Create(nil);
  STOMP.Client := TCPClient;
  STOMP.ActiveMQ_Options.ClientId := 'delphi-consumer-1';
  STOMP.Authentication.Enabled  := True;
  STOMP.Authentication.UserName := 'admin';
  STOMP.Authentication.Password := 'admin';

  STOMP.OnActiveMQConnected := ActiveMQConnected;
  STOMP.OnActiveMQMessage   := ActiveMQMessage;

  TCPClient.Active := True;
end;

procedure TForm1.ActiveMQConnected(Connection: TsgcWSConnection;
  Headers: TsgcWSActiveMQSTOMPHeadersConnected);
begin
  STOMP.SubscribeQueue('orders');
  STOMP.PublishQueue('orders', '{"id":42}');
end;

procedure TForm1.ActiveMQMessage(Connection: TsgcWSConnection;
  MessageText: string; Headers: TsgcWSActiveMQSTOMPHeadersMessage;
  Subscription: TsgcWSBrokerSTOMPSubscriptionItem);
begin
  Memo1.Lines.Add(Headers.Destination + ': ' + MessageText);
end;
// include: sgcTCP_Client_WS.hpp, sgcWebSocket_Protocols.hpp,
// sgcWebSocket_Protocol_STOMP_ActiveMQ_Client.hpp

TsgcTCPClient *TCPClient = new TsgcTCPClient(this);
TCPClient->Host = "broker.example.com";
TCPClient->Port = 61613;

TsgcWSPClient_STOMP_ActiveMQ *STOMP =
  new TsgcWSPClient_STOMP_ActiveMQ(this);
STOMP->Client = TCPClient;
STOMP->ActiveMQ_Options->ClientId = "cbuilder-consumer-1";
STOMP->Authentication->Enabled  = true;
STOMP->Authentication->UserName = "admin";
STOMP->Authentication->Password = "admin";

STOMP->OnActiveMQConnected = ActiveMQConnected;
STOMP->OnActiveMQMessage   = ActiveMQMessage;

TCPClient->Active = true;

// In the OnActiveMQConnected handler:
STOMP->SubscribeQueue("orders");
STOMP->PublishQueue("orders", "{\"id\":42}");

Proprietà e metodi principali

I membri che userai più spesso.

Code

SubscribeQueue, PublishQueue e UnSubscribeQueue accettano il nome semplice della coda e costruiscono la destinazione /queue/, con gli argomenti durable, exclusive e modalità di ack.

Topic

SubscribeTopic, PublishTopic e UnSubscribeTopic fanno lo stesso per le destinazioni /topic/, che è dove le sottoscrizioni durevoli contano di più.

Destinazioni generiche

SubscribeEx, PublishEx e UnSubscribeEx accettano una stringa di destinazione grezza per tutto ciò che le funzioni di supporto non coprono.

Opzioni del broker

ActiveMQ_Options contiene le impostazioni specifiche di ActiveMQ, incluso il ClientId che il broker usa per riconoscere un sottoscrittore durevole che torna.

Sottoscrizioni durevoli

Le funzioni di sottoscrizione accettano un flag Durable, così un sottoscrittore di topic può disconnettersi e più tardi raccogliere i messaggi che il broker ha conservato per lui.

Header tipizzati

OnActiveMQMessage consegna un TsgcWSActiveMQSTOMPHeadersMessage più la voce di sottoscrizione corrispondente, così destinazione, id del messaggio e modalità di ack sono proprietà.

Conferma

Passa una modalità di ack quando sottoscrivi, poi chiama ACK o NACK con l'id del messaggio. In ackAuto il broker considera un messaggio consegnato non appena viene inviato.

Opzioni del messaggio

Ogni funzione di pubblicazione accetta un content type, un nome di transazione facoltativo e un oggetto di opzioni del messaggio per gli header di ActiveMQ come priorità, persistenza e scadenza.

Connessione

Client, Authentication, HeartBeat, Versions e Options si comportano esattamente come sul client STOMP generico.

Continua a esplorare

Guida onlineRiferimento API completo e guida all'utilizzo.
Client STOMP genericoIl componente base con l'insieme di frame standard.
AMQP 1.0 ClientAnche ActiveMQ Artemis parla AMQP 1.0.
Scarica la versione di prova gratuitaEsegui il client contro un broker ActiveMQ locale.
PrezziLicenze Single, Team e Site con codice sorgente completo.
La scelta più conveniente: All-AccessTutti i prodotti eSeGeCe, con Supporto Premium incluso, a partire da €1,059/anno.
Vedi i prezzi All-Access

Pronto per iniziare?

Scarica la versione di prova gratuita e dialoga con ActiveMQ via STOMP da Delphi o C++ Builder.