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.

Qu'est-ce que STOMP ?

STOMP fournit un protocole de messaging simple et textuel qui permet l'interopérabilité entre différents brokers de messages et implémentations clientes.

Messaging simple et interopérable

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.

  • Protocole textuel lisible par l'humain
  • Fonctionne avec n'importe quel broker compatible STOMP
  • Ensemble de commandes simple pour un développement rapide
  • Fonctionne sur WebSocket pour la compatibilité navigateur
SEND destination:/queue CLIENT BROKER

Fonctionnalités STOMP

Le messaging d'entreprise simplifié grâce à un protocole textuel propre.

Protocole textuel

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.

RabbitMQ et ActiveMQ

Entièrement compatible avec les brokers de messages RabbitMQ et ActiveMQ, donnant accès à l'infrastructure de messaging d'entreprise.

CONNECT/SEND/SUBSCRIBE

Ensemble de commandes propre couvrant la gestion de connexion, l'envoi de messages et l'abonnement à des topics avec une sémantique claire.

Confirmation de réception

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.

Prise en charge des transactions

Regroupe plusieurs opérations SEND et ACK dans des transactions atomiques avec les commandes BEGIN, COMMIT et ABORT.

Négociation Heart-Beat

Mécanisme keep-alive automatique pour détecter les connexions rompues et maintenir des sessions broker persistantes.

Cas d'usage STOMP

Scénarios de messaging d'entreprise où STOMP fournit une communication simple et fiable.

Mise en file d'entreprise

Connecte des applications Delphi à des files de messages d'entreprise pour une communication asynchrone et fiable entre systèmes.

Communication entre microservices

Permet une communication faiblement couplée entre microservices via le messaging par topic et les schémas de queue.

Architectures pilotées par événements

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.

Messaging multiplateforme

Fais le pont entre des applications écrites dans différents langages et frameworks via un protocole commun.

Exemple STOMP en Delphi

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;

Prêt à commencer avec STOMP ?

Télécharge l’essai gratuit et connecte-toi à des brokers de messages d’entreprise en quelques minutes.