STOMP-Protokoll

Simple Text Oriented Messaging Protocol für interoperables Messaging. Verbinde deine Delphi-Anwendungen mit RabbitMQ, ActiveMQ und jedem STOMP-kompatiblen Broker.

Was ist STOMP?

STOMP bietet ein einfaches, textbasiertes Messaging-Protokoll, das Interoperabilität zwischen verschiedenen Message-Brokern und Client-Implementierungen ermöglicht.

Einfaches, interoperables Messaging

STOMP ist auf Einfachheit und leichte Implementierung ausgelegt. Anders als binäre Protokolle nutzt STOMP ein textbasiertes Frame-Format, das menschenlesbar und unkompliziert zu debuggen ist. Es definiert einen kleinen Satz von Befehlen — CONNECT, SEND, SUBSCRIBE, UNSUBSCRIBE, ACK, NACK, BEGIN, COMMIT, ABORT und DISCONNECT —, der alle gängigen Messaging-Muster abdeckt. sgcWebSockets implementiert das STOMP-Protokoll über WebSocket-Verbindungen und erlaubt Browser- und nativen Clients die Kommunikation mit Enterprise-Message-Brokern.

  • Menschenlesbares, textbasiertes Protokoll
  • Funktioniert mit jedem STOMP-kompatiblen Broker
  • Einfacher Befehlssatz für schnelle Entwicklung
  • Läuft über WebSocket für Browser-Kompatibilität
SEND destination:/queue CLIENT BROKER

STOMP-Funktionen

Enterprise-Messaging einfach gemacht durch ein klares, textbasiertes Protokoll.

Textbasiertes Protokoll

Menschenlesbare Frames machen Debugging und Entwicklung einfach. Jeder Frame besteht aus einem Befehl, Headern und einem optionalen Body.

RabbitMQ & ActiveMQ

Voll kompatibel mit RabbitMQ- und ActiveMQ-Message-Brokern — Zugriff auf Enterprise-Messaging-Infrastruktur.

CONNECT/SEND/SUBSCRIBE

Klarer Befehlssatz für Verbindungsverwaltung, Nachrichtenversand und Topic-Abonnement mit eindeutiger Semantik.

Empfangsbestätigung

Fordere Empfangsbestätigungen vom Broker an, um sicherzustellen, dass deine Nachrichten erfolgreich empfangen und verarbeitet wurden.

Transaktionsunterstützung

Fasse mehrere SEND- und ACK-Operationen mit den Befehlen BEGIN, COMMIT und ABORT zu atomaren Transaktionen zusammen.

Heart-Beat-Aushandlung

Automatischer Keep-Alive-Mechanismus zur Erkennung gebrochener Verbindungen und Aufrechterhaltung persistenter Broker-Sitzungen.

STOMP-Anwendungsfälle

Enterprise-Messaging-Szenarien, in denen STOMP einfache, zuverlässige Kommunikation bietet.

Enterprise Message Queuing

Verbinde Delphi-Anwendungen mit Enterprise-Message-Queues für zuverlässige, asynchrone Kommunikation zwischen Systemen.

Microservices-Kommunikation

Ermögliche lose gekoppelte Kommunikation zwischen Microservices über topicbasiertes Messaging und Queue-Muster.

Ereignisgesteuerte Architekturen

Baue ereignisgesteuerte Systeme, in denen Komponenten auf über STOMP-Message-Broker veröffentlichte Ereignisse reagieren.

Plattformübergreifendes Messaging

Verbinde Anwendungen, die in unterschiedlichen Sprachen und Frameworks geschrieben sind, über ein gemeinsames Protokoll.

Delphi-STOMP-Beispiel

Verbinde dich mit einem STOMP-Broker, abonniere eine Destination und sende Nachrichten.

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';

  // STOMP-Protokoll konfigurieren
  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;

  // Event-Handler einrichten
  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
  // Eine Queue abonnieren
  WSClient.STOMP.Subscribe('/queue/orders');
end;

procedure TForm1.OnSTOMPMessage(Sender: TObject;
  aDestination, aBody: string);
begin
  // Eingehende Nachrichten verarbeiten
  Memo1.Lines.Add(aDestination + ': ' + aBody);
end;

procedure TForm1.ButtonSendClick(Sender: TObject);
begin
  // Nachricht an eine Destination senden
  WSClient.STOMP.Send('/queue/orders',
    '{"orderId": 12345, "status": "new"}');
end;

Bereit, mit STOMP zu starten?

Lade die kostenlose Testversion herunter und verbinde dich in wenigen Minuten mit Enterprise-Message-Brokern.