Klient STOMP dla Delphi

Simple Text Oriented Messaging Protocol do interoperacyjnej wymiany komunikatów. Połącz się z RabbitMQ, ActiveMQ i dowolnym brokerem zgodnym ze STOMP z poziomu swoich aplikacji Delphi.

Szybka odpowiedź: sgcWebSockets dodaje obsługę komunikatów STOMP do TsgcWebSocketClient przez właściwość STOMP, dzięki czemu aplikacje Delphi i C++ Builder mogą subskrybować, wysyłać, uruchamiać transakcje i negocjować heart-beaty przez WebSocket z RabbitMQ, ActiveMQ lub dowolnym brokerem STOMP.

Czym jest STOMP?

STOMP to prosty, tekstowy protokół komunikacyjny, który zapewnia interoperacyjność między różnymi brokerami komunikatów a implementacjami klientów.

Prosta, interoperacyjna wymiana komunikatów

STOMP został zaprojektowany tak, aby był prosty i łatwy w implementacji. W przeciwieństwie do protokołów binarnych używa tekstowego formatu ramek, który jest czytelny dla człowieka i łatwy do debugowania. Definiuje niewielki zestaw poleceń (CONNECT, SEND, SUBSCRIBE, UNSUBSCRIBE, ACK, NACK, BEGIN, COMMIT, ABORT i DISCONNECT), które obejmują wszystkie typowe wzorce komunikacji. sgcWebSockets implementuje protokół STOMP przez połączenia WebSocket, dzięki czemu klienci przeglądarkowi i natywni mogą komunikować się z korporacyjnymi brokerami komunikatów.

  • Czytelny dla człowieka protokół tekstowy
  • Działa z dowolnym brokerem zgodnym ze STOMP
  • Prosty zestaw poleceń do szybkiego tworzenia
  • Działa przez WebSocket, co zapewnia zgodność z przeglądarkami
SEND destination:/queue CLIENT BROKER

Funkcje STOMP

Korporacyjna wymiana komunikatów w prostej formie dzięki przejrzystemu protokołowi tekstowemu.

Protokół tekstowy

Czytelne ramki upraszczają debugowanie i programowanie. Każda ramka składa się z polecenia, nagłówków i opcjonalnej treści.

RabbitMQ & ActiveMQ

Pełna zgodność z brokerami komunikatów RabbitMQ i ActiveMQ, co daje dostęp do korporacyjnej infrastruktury komunikacyjnej.

CONNECT/SEND/SUBSCRIBE

Przejrzysty zestaw poleceń obejmujący zarządzanie połączeniem, wysyłanie komunikatów i subskrypcję tematów o jasnej semantyce.

Potwierdzenie odbioru

Żądaj od brokera potwierdzeń odbioru, aby mieć pewność, że twoje komunikaty zostały odebrane i przetworzone.

Obsługa transakcji

Grupuj wiele operacji SEND i ACK w atomowe transakcje za pomocą poleceń BEGIN, COMMIT i ABORT.

Negocjacja heart-beat

Automatyczny mechanizm keep-alive wykrywa przerwane połączenia i utrzymuje trwałe sesje z brokerem.

Przypadki użycia STOMP

Scenariusze komunikacji korporacyjnej, w których STOMP zapewnia prostą i niezawodną wymianę komunikatów.

Korporacyjne kolejki komunikatów

Połącz aplikacje Delphi z korporacyjnymi kolejkami komunikatów, aby uzyskać niezawodną, asynchroniczną komunikację między systemami.

Komunikacja mikrousług

Umożliwiaj luźno powiązaną komunikację między mikrousługami za pomocą tematów i wzorców kolejek.

Architektury zdarzeniowe

Buduj systemy zdarzeniowe, w których komponenty reagują na zdarzenia publikowane przez brokery komunikatów STOMP.

Komunikacja międzyplatformowa

Połącz aplikacje napisane w różnych językach i frameworkach za pomocą wspólnego protokołu.

Przykład STOMP w Delphi

Połącz się z brokerem STOMP, zasubskrybuj miejsce docelowe i wysyłaj komunikaty.

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;

STOMP, najczęściej zadawane pytania

Częste pytania o łączenie aplikacji Delphi i C++ Builder z brokerami STOMP.

Upuść komponent TsgcWebSocketClient, ustaw jego Host i Port, ustaw Specifications.RFC6455.Protocol na 'stomp', a następnie włącz właściwość STOMP. Po połączeniu wywołujesz STOMP.Subscribe, aby odbierać ramki, oraz STOMP.Send, aby publikować do miejsca docelowego. Komponent implementuje polecenia STOMP: CONNECT, SEND, SUBSCRIBE, ACK, NACK, BEGIN, COMMIT, ABORT i DISCONNECT.
Klient współpracuje z RabbitMQ i ActiveMQ oraz z dowolnym brokerem komunikatów zgodnym ze STOMP. Ponieważ STOMP jest prostym, tekstowym protokołem przewodowym, ten sam komponent rozmawia z każdym serwerem implementującym specyfikację STOMP.
Tak. Możesz grupować operacje SEND i ACK w atomowe transakcje za pomocą BEGIN, COMMIT i ABORT, żądać potwierdzeń odbioru od brokera oraz konfigurować negocjację heart-beatów przez STOMP.HeartBeat.Outgoing i STOMP.HeartBeat.Incoming, aby utrzymać połączenie i wykrywać zerwane sesje. STOMP działa na transporcie WebSocket, zapewniając komunikację zgodną z przeglądarką.
sgcWebSockets obsługuje Delphi 7 aż po najnowsze wydanie Delphi oraz odpowiadające im wersje C++ Builder, w systemach Windows, macOS, Linux, iOS i Android. Pobierz bezpłatną wersję próbną, aby ocenić klienta STOMP we własnym projekcie.
Najkorzystniejsza oferta: All-AccessWszystkie produkty eSeGeCe, ze wsparciem Premium w cenie, już od €1,059 rocznie.
Zobacz cennik All-Access

Gotowy, aby rozpocząć ze STOMP?

Pobierz bezpłatną wersję próbną i połącz się z korporacyjnymi brokerami komunikatów w kilka minut.