Protocollo STOMP

Simple Text Oriented Messaging Protocol per il messaging interoperabile. Connettiti a RabbitMQ, ActiveMQ e a qualsiasi broker STOMP-compatibile dalle tue applicazioni Delphi.

Cos'è STOMP?

STOMP è un protocollo di messaging semplice e testuale che permette l'interoperabilità tra diversi message broker e implementazioni client.

Messaging semplice e interoperabile

STOMP è progettato per essere semplice e facile da implementare. A differenza dei protocolli binari, STOMP utilizza un formato di frame testuale leggibile dall'uomo e immediato da debuggare. Definisce un piccolo set di comandi — CONNECT, SEND, SUBSCRIBE, UNSUBSCRIBE, ACK, NACK, BEGIN, COMMIT, ABORT e DISCONNECT — che coprono tutti i pattern di messaging più comuni. sgcWebSockets implementa il protocollo STOMP su connessioni WebSocket, permettendo a client browser e nativi di comunicare con message broker enterprise.

  • Protocollo testuale leggibile dall'uomo
  • Funziona con qualsiasi broker STOMP-compatibile
  • Set di comandi semplice per uno sviluppo rapido
  • Funziona su WebSocket per la compatibilità con i browser
SEND destination:/queue CLIENT BROKER

Caratteristiche di STOMP

Messaging enterprise semplificato grazie a un protocollo testuale e pulito.

Protocollo testuale

Frame leggibili dall'uomo rendono il debug e lo sviluppo immediati. Ogni frame è composto da un comando, header e un body opzionale.

RabbitMQ e ActiveMQ

Pienamente compatibile con i message broker RabbitMQ e ActiveMQ, per accedere a un'infrastruttura di messaging enterprise.

CONNECT/SEND/SUBSCRIBE

Set di comandi pulito che copre gestione della connessione, invio dei messaggi e sottoscrizione ai topic con una semantica chiara.

Conferme di ricezione

Richiedi al broker conferme di ricezione per assicurarti che i tuoi messaggi siano stati ricevuti ed elaborati correttamente.

Supporto per le transazioni

Raggruppa più operazioni SEND e ACK in transazioni atomiche con i comandi BEGIN, COMMIT e ABORT.

Negoziazione dell'heart-beat

Meccanismo di keep-alive automatico per rilevare connessioni interrotte e mantenere sessioni persistenti con il broker.

Casi d'uso di STOMP

Scenari di messaging enterprise in cui STOMP offre una comunicazione semplice e affidabile.

Code di messaggi enterprise

Collega le applicazioni Delphi a code di messaggi enterprise per una comunicazione asincrona e affidabile tra sistemi.

Comunicazione tra microservizi

Abilita una comunicazione a basso accoppiamento tra microservizi tramite messaging basato su topic e pattern di code.

Architetture event-driven

Costruisci sistemi event-driven in cui i componenti reagiscono agli eventi pubblicati tramite message broker STOMP.

Messaging multipiattaforma

Fai da ponte tra applicazioni scritte in linguaggi e framework diversi tramite un protocollo comune.

Esempio STOMP in Delphi

Connettiti a un broker STOMP, sottoscrivi una destination e invia messaggi.

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;

Pronto a iniziare con STOMP?

Scarica la versione di prova gratuita e collegati ai message broker enterprise in pochi minuti.