STOMP-Protokoll
Simple Text Oriented Messaging Protocol für interoperables Messaging. Verbinde deine Delphi-Anwendungen mit RabbitMQ, ActiveMQ und jedem STOMP-kompatiblen Broker.
Simple Text Oriented Messaging Protocol für interoperables Messaging. Verbinde deine Delphi-Anwendungen mit RabbitMQ, ActiveMQ und jedem STOMP-kompatiblen Broker.
STOMP bietet ein einfaches, textbasiertes Messaging-Protokoll, das Interoperabilität zwischen verschiedenen Message-Brokern und Client-Implementierungen ermöglicht.
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.
Enterprise-Messaging einfach gemacht durch ein klares, textbasiertes Protokoll.
Menschenlesbare Frames machen Debugging und Entwicklung einfach. Jeder Frame besteht aus einem Befehl, Headern und einem optionalen Body.
Voll kompatibel mit RabbitMQ- und ActiveMQ-Message-Brokern — Zugriff auf Enterprise-Messaging-Infrastruktur.
Klarer Befehlssatz für Verbindungsverwaltung, Nachrichtenversand und Topic-Abonnement mit eindeutiger Semantik.
Fordere Empfangsbestätigungen vom Broker an, um sicherzustellen, dass deine Nachrichten erfolgreich empfangen und verarbeitet wurden.
Fasse mehrere SEND- und ACK-Operationen mit den Befehlen BEGIN, COMMIT und ABORT zu atomaren Transaktionen zusammen.
Automatischer Keep-Alive-Mechanismus zur Erkennung gebrochener Verbindungen und Aufrechterhaltung persistenter Broker-Sitzungen.
Enterprise-Messaging-Szenarien, in denen STOMP einfache, zuverlässige Kommunikation bietet.
Verbinde Delphi-Anwendungen mit Enterprise-Message-Queues für zuverlässige, asynchrone Kommunikation zwischen Systemen.
Ermögliche lose gekoppelte Kommunikation zwischen Microservices über topicbasiertes Messaging und Queue-Muster.
Baue ereignisgesteuerte Systeme, in denen Komponenten auf über STOMP-Message-Broker veröffentlichte Ereignisse reagieren.
Verbinde Anwendungen, die in unterschiedlichen Sprachen und Frameworks geschrieben sind, über ein gemeinsames Protokoll.
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;