Streaming Text Oriented Messaging Protocol
# Streaming Text Oriented Messaging Protocol

Simple (o Streaming) Text Oriented Protocol (STOMP), anteriormente conocido como TTMP, es un protocolo de transferencia de mensajes de texto simple, diseñado para trabajar con middlewares orientados a mensajes. Proporciona interoperabilidad con conexiones punto a punto (wire protocol) que permite a los clientes STMP intercambiar mensajes con cualquier broker de mensajes que soporte este protocolo.

## Visión general

Este protocolo es, en términos generales, similar a HTTP, y trabaja sobre el protocolo TCP utilizando los siguientes comandos:

* CONNECT
* SEND
* SUBSCRIBE
* UNSUBSCRIBE
* BEGIN
* COMMIT
* ABORT
* ACK
* NACK
* DISCONNECT

La comunicación entre el cliente y el servidor es a través de un "frame" (o cabecera) consta de varias líneas. La primera línea contiene el comando, seguido por encabezados con estructura <clave>: <valor> (uno por línea), seguido por una línea sin contenido y entonces el cuerpo del contenido, acabando en un caracter null. La comunicación entre el servidor y el cliente es a través de los comandos MESSAGE, RECEIPT o ERROR, con un formato similar de encabezados y cuerpo del contenido.

## Implementaciones

Estos son algunas implementaciones de middlewares orientados a mensajes con soporte de STOMP:

* Apache ActiveMQ, también conocido como Fuse Message Broker
* HornetQ
* Open Message Queue (OpenMQ)
* RabbitMQ (Broker de mensajes, tiene soporte para STOMP)
* syslog-ng A través de su plugin para STOMP

Una lista de implementaciones es también mantenido en el STOMP sitio de web.

