Protocole STOMP
Simple Text Oriented Messaging Protocol pour un messaging interopérable. Connecte-toi à RabbitMQ, ActiveMQ et n'importe quel broker compatible STOMP depuis tes applications Delphi.
Simple Text Oriented Messaging Protocol pour un messaging interopérable. Connecte-toi à RabbitMQ, ActiveMQ et n'importe quel broker compatible STOMP depuis tes applications Delphi.
STOMP fournit un protocole de messaging simple et textuel qui permet l'interopérabilité entre différents brokers de messages et implémentations clientes.
STOMP est conçu pour être simple et facile à implémenter. Contrairement aux protocoles binaires, STOMP utilise un format de trame textuel lisible par l'humain et simple à déboguer. Il définit un petit ensemble de commandes — CONNECT, SEND, SUBSCRIBE, UNSUBSCRIBE, ACK, NACK, BEGIN, COMMIT, ABORT et DISCONNECT — qui couvrent tous les schémas de messaging courants. sgcWebSockets implémente le protocole STOMP sur des connexions WebSocket, permettant aux clients navigateur et natifs de communiquer avec des brokers de messages d'entreprise.
Le messaging d'entreprise simplifié grâce à un protocole textuel propre.
Les trames lisibles par l'humain simplifient le debug et le développement. Chaque trame se compose d'une commande, d'en-têtes et d'un corps optionnel.
Entièrement compatible avec les brokers de messages RabbitMQ et ActiveMQ, donnant accès à l'infrastructure de messaging d'entreprise.
Ensemble de commandes propre couvrant la gestion de connexion, l'envoi de messages et l'abonnement à des topics avec une sémantique claire.
Demande des confirmations de réception au broker pour t'assurer que tes messages ont bien été reçus et traités avec succès.
Regroupe plusieurs opérations SEND et ACK dans des transactions atomiques avec les commandes BEGIN, COMMIT et ABORT.
Mécanisme keep-alive automatique pour détecter les connexions rompues et maintenir des sessions broker persistantes.
Scénarios de messaging d'entreprise où STOMP fournit une communication simple et fiable.
Connecte des applications Delphi à des files de messages d'entreprise pour une communication asynchrone et fiable entre systèmes.
Permet une communication faiblement couplée entre microservices via le messaging par topic et les schémas de queue.
Construis des systèmes pilotés par événements où les composants réagissent aux événements publiés via des brokers de messages STOMP.
Fais le pont entre des applications écrites dans différents langages et frameworks via un protocole commun.
Connecte-toi à un broker STOMP, abonne-toi à une destination et envoie des messages.
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;