Komponent STOMP ActiveMQ Client: sgcMQ | eSeGeCe

STOMP ActiveMQ Client

TsgcWSPClient_STOMP_ActiveMQ to klient STOMP dostosowany do Apache ActiveMQ. Dodaje funkcje pomocnicze dla kolejek i tematów na bazie nazewnictwa miejsc docelowych ActiveMQ, typowane obiekty nagłówków w każdym zdarzeniu oraz właściwość ActiveMQ_Options dla ustawień brokera, których wymagają trwałe subskrypcje.

TsgcWSPClient_STOMP_ActiveMQ

Wszystko z ogólnego klienta STOMP nadal obowiązuje. Nowością są funkcje pomocnicze miejsc docelowych, zdarzenia nazwane po ActiveMQ oraz opcje brokera.

Klasa komponentu

TsgcWSPClient_STOMP_ActiveMQ

Specyfikacja

STOMP 1.0, 1.1 i 1.2

Transport

TCP (61613) lub TLS (61612)

Języki

Delphi, C++ Builder

Transport: zwykły TCP i TLS. sgcMQ komunikuje się z ActiveMQ przez zwykły TCP i TLS. Konektor STOMP-over-WebSocket w ActiveMQ jest punktem końcowym WebSocket, więc dotarcie do niego wymaga pakietu sgcWebSockets, który dostarcza klienta WebSocket.

Subskrybuj kolejkę i publikuj do niej

Ten przykład używa natywnego portu STOMP ActiveMQ, 61613. Aby uzyskać szyfrowane połączenie, włącz TLS na nośniku i użyj konektora stomp+ssl brokera na porcie 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}");

Kluczowe właściwości i metody

Składowe, po które sięgasz najczęściej.

Kolejki

SubscribeQueue, PublishQueue i UnSubscribeQueue przyjmują samą nazwę kolejki i budują miejsce docelowe /queue/, z argumentami durable, exclusive i trybem potwierdzania.

Tematy

SubscribeTopic, PublishTopic i UnSubscribeTopic robią to samo dla miejsc docelowych /topic/, gdzie trwałe subskrypcje mają największe znaczenie.

Miejsca docelowe ogólne

SubscribeEx, PublishEx i UnSubscribeEx przyjmują surowy ciąg miejsca docelowego dla wszystkiego, czego nazwane funkcje pomocnicze nie obejmują.

Opcje brokera

ActiveMQ_Options niesie ustawienia specyficzne dla ActiveMQ, w tym ClientId, po którym broker rozpoznaje powracającego trwałego subskrybenta.

Trwałe subskrypcje

Funkcje pomocnicze subskrypcji przyjmują flagę Durable, dzięki czemu subskrybent tematu może się rozłączyć i później odebrać wiadomości, które broker dla niego zachował.

Nagłówki typowane

OnActiveMQMessage dostarcza TsgcWSActiveMQSTOMPHeadersMessage oraz pasujący element subskrypcji, więc miejsce docelowe, identyfikator wiadomości i tryb potwierdzania są właściwościami.

Potwierdzanie

Przekaż tryb potwierdzania przy subskrypcji, a następnie wywołaj ACK lub NACK z identyfikatorem wiadomości. W trybie ackAuto broker uznaje wiadomość za dostarczoną, gdy tylko ją wyśle.

Opcje wiadomości

Każda funkcja pomocnicza publikowania przyjmuje typ zawartości, opcjonalną nazwę transakcji i obiekt opcji wiadomości dla nagłówków ActiveMQ, takich jak priorytet, trwałość i wygaśnięcie.

Połączenie

Client, Authentication, HeartBeat, Versions i Options zachowują się dokładnie tak, jak w ogólnym kliencie STOMP.

Poznawaj dalej

Pomoc onlinePełna dokumentacja API i przewodnik użytkowania.
Generic STOMP ClientKomponent bazowy ze standardowym zestawem ramek.
AMQP 1.0 ClientActiveMQ Artemis also speaks AMQP 1.0.
Pobierz bezpłatną wersję próbnąUruchom wobec lokalnego brokera ActiveMQ.
CennikLicencje Single, Team i Site z pełnym kodem źródłowym.
Najkorzystniejsza oferta: All-AccessWszystkie produkty eSeGeCe, ze wsparciem Premium w cenie, już od €1,059 rocznie.
Zobacz cennik All-Access

Gotowy, aby zacząć?

Pobierz bezpłatną wersję próbną i porozmawiaj z ActiveMQ przez STOMP z Delphi lub C++ Builder.