STOMP-protocol

Simple Text Oriented Messaging Protocol voor interoperabele messaging. Verbind vanuit je Delphi-toepassingen met RabbitMQ, ActiveMQ en elke STOMP-compatibele broker.

Wat is STOMP?

STOMP biedt een eenvoudig, op tekst gebaseerd messagingprotocol dat interoperabiliteit mogelijk maakt tussen verschillende message-brokers en client-implementaties.

Eenvoudige, interoperabele messaging

STOMP is ontworpen om eenvoudig te zijn en eenvoudig te implementeren. Anders dan binaire protocollen gebruikt STOMP een op tekst gebaseerd frame-formaat dat leesbaar en gemakkelijk te debuggen is. Het definieert een kleine set commando's — CONNECT, SEND, SUBSCRIBE, UNSUBSCRIBE, ACK, NACK, BEGIN, COMMIT, ABORT en DISCONNECT — die alle gangbare messagingpatronen dekken. sgcWebSockets implementeert het STOMP-protocol over WebSocket-verbindingen, zodat browsers en native clients met enterprise-message-brokers kunnen communiceren.

  • Leesbaar, op tekst gebaseerd protocol
  • Werkt met elke STOMP-compatibele broker
  • Eenvoudige set commando's voor snelle ontwikkeling
  • Werkt over WebSocket voor browsercompatibiliteit
SEND destination:/queue CLIENT BROKER

STOMP-functies

Enterprise-messaging eenvoudig gemaakt met een helder, op tekst gebaseerd protocol.

Op tekst gebaseerd protocol

Leesbare frames maken debuggen en ontwikkelen eenvoudig. Elk frame bestaat uit een commando, headers en een optioneel body.

RabbitMQ & ActiveMQ

Volledig compatibel met de message-brokers RabbitMQ en ActiveMQ, met toegang tot enterprise-messaginginfrastructuur.

CONNECT/SEND/SUBSCRIBE

Heldere set commando's voor verbindingsbeheer, berichtverzending en topic-abonnementen met duidelijke semantiek.

Ontvangstbevestiging

Vraag ontvangstbevestigingen op bij de broker om zeker te zijn dat je berichten zijn ontvangen en verwerkt.

Transactie-ondersteuning

Groepeer meerdere SEND- en ACK-operaties in atomische transacties met de commando's BEGIN, COMMIT en ABORT.

Heart-beat-negotiatie

Automatisch keep-alive-mechanisme om verbroken verbindingen te detecteren en persistente broker-sessies te onderhouden.

STOMP-toepassingen

Enterprise-messagingscenario's waarin STOMP eenvoudige, betrouwbare communicatie biedt.

Enterprise message queuing

Verbind Delphi-toepassingen met enterprise message queues voor betrouwbare, asynchrone communicatie tussen systemen.

Microservicescommunicatie

Maak losjes gekoppelde communicatie mogelijk tussen microservices via topic-gebaseerde messaging en queue-patronen.

Event-driven architecturen

Bouw event-driven systemen waarin componenten reageren op events die via STOMP-message-brokers worden gepubliceerd.

Cross-platform messaging

Overbrug communicatie tussen toepassingen geschreven in verschillende talen en frameworks via één gemeenschappelijk protocol.

Delphi STOMP-voorbeeld

Verbind met een STOMP-broker, abonneer je op een destination en verstuur berichten.

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;

Klaar om aan de slag te gaan met STOMP?

Download de gratis proefversie en maak binnen enkele minuten verbinding met enterprise-message-brokers.