Streaming Text Oriented Messaging Protocol

Streaming (o Simple) Text Oriented Message Protocol (STOMP), precedentemente noto come TTMP, è un semplice protocollo di comunicazione basato sul testo (text-based), di livello applicativo nella pila ISO/OSI, progettato per lavorare con middleware orientati ai messaggi (MOM). Fornisce un wire format interoperabile che consente ai client STOMP di parlare con qualsiasi broker di messaggi che supporti il protocollo.

Descrizione

Il protocollo è sostanzialmente simile a HTTP e funziona su TCP utilizzando i seguenti comandi (frame lato client):

La comunicazione da client a server avviene attraverso un “frame” lato client tra quelli precedentemente indicati, composto da un certo numero di righe. La prima riga contiene il comando, seguito da intestazioni nella forma <chiave>: <valore> (una per riga), seguita da una riga vuota e quindi dal contenuto del corpo, che termina con un carattere null. La comunicazione da server a client avviene attraverso i frame lato server MESSAGE, RECEIPT o ERROR con un formato simile di intestazioni e contenuto del corpo. La codifica di caratteri utilizzata di default da STOMP è UTF-8.

Implementazioni

Tra i prodotti MOM che supportano STOMP, vi sono:

Tra le librerie per utilizzare STOMP dal lato client, vi sono stomp.py per Python e Net::STOMP::Client per Perl.

Note

  1. ↑ STOMP, su stomp.github.io. URL consultato il 25 settembre 2024.
  2. 1 2 3 4 5 stomp.github.io, https://stomp.github.io/stomp-specification-1.2.html#Abstract. URL consultato il 25 settembre 2024.
  3. ↑ stomp.github.io, https://stomp.github.io/stomp-specification-1.2.html#BEGIN. URL consultato il 25 settembre 2024.
  4. ↑ stomp.github.io, https://stomp.github.io/stomp-specification-1.2.html#COMMIT. URL consultato il 25 settembre 2024.
  5. ↑ stomp.github.io, https://stomp.github.io/stomp-specification-1.2.html#ABORT. URL consultato il 25 settembre 2024.
  6. 1 2 stomp.github.io, https://stomp.github.io/stomp-specification-1.2.html#ACK. URL consultato il 25 settembre 2024.
  7. ↑ stomp.github.io, https://stomp.github.io/stomp-specification-1.2.html#DISCONNECT. URL consultato il 25 settembre 2024.
  8. ↑ Stomp - ActiveMQ - The Apache Software Foundation!, su activemq.apache.org.
  9. ↑ Chapter 48. Interoperability, su docs.jboss.org. URL consultato il 25 settembre 2024.
  10. ↑ Habari STOMP Client for OpenMQ | Habarisoft, su www.habarisoft.com. URL consultato il 25 settembre 2024.
  11. ↑ (EN) STOMP Plugin | RabbitMQ, su www.rabbitmq.com. URL consultato il 25 settembre 2024.
  12. ↑ Fuse MQ Enterprise - Connectivity Guide - Stomp Heartbeats, su access.redhat.com.
  13. ↑ (EN) OpenSource Community, Introduction, su syslog-ng documentation. URL consultato il 25 settembre 2024.
  14. ↑ STOMP - CERN Messaging Service - User Guide, su mig-user.docs.cern.ch. URL consultato il 25 settembre 2024.

Collegamenti esterni