STOMP-protocol
Simple Text Oriented Messaging Protocol voor interoperabele messaging. Verbind vanuit je Delphi-toepassingen met RabbitMQ, ActiveMQ en elke STOMP-compatibele broker.
Simple Text Oriented Messaging Protocol voor interoperabele messaging. Verbind vanuit je Delphi-toepassingen met RabbitMQ, ActiveMQ en elke STOMP-compatibele broker.
STOMP biedt een eenvoudig, op tekst gebaseerd messagingprotocol dat interoperabiliteit mogelijk maakt tussen verschillende message-brokers en client-implementaties.
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.
Enterprise-messaging eenvoudig gemaakt met een helder, op tekst gebaseerd protocol.
Leesbare frames maken debuggen en ontwikkelen eenvoudig. Elk frame bestaat uit een commando, headers en een optioneel body.
Volledig compatibel met de message-brokers RabbitMQ en ActiveMQ, met toegang tot enterprise-messaginginfrastructuur.
Heldere set commando's voor verbindingsbeheer, berichtverzending en topic-abonnementen met duidelijke semantiek.
Vraag ontvangstbevestigingen op bij de broker om zeker te zijn dat je berichten zijn ontvangen en verwerkt.
Groepeer meerdere SEND- en ACK-operaties in atomische transacties met de commando's BEGIN, COMMIT en ABORT.
Automatisch keep-alive-mechanisme om verbroken verbindingen te detecteren en persistente broker-sessies te onderhouden.
Enterprise-messagingscenario's waarin STOMP eenvoudige, betrouwbare communicatie biedt.
Verbind Delphi-toepassingen met enterprise message queues voor betrouwbare, asynchrone communicatie tussen systemen.
Maak losjes gekoppelde communicatie mogelijk tussen microservices via topic-gebaseerde messaging en queue-patronen.
Bouw event-driven systemen waarin componenten reageren op events die via STOMP-message-brokers worden gepubliceerd.
Overbrug communicatie tussen toepassingen geschreven in verschillende talen en frameworks via één gemeenschappelijk protocol.
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;