The Simple Text Oriented Messaging Protocol(STOMP)

一、STOMP是什么?

​ STOMP is the Simple(or Streaming)Text Orientated Messaging Protocol(STOMP是面向文本的简单或流式消息传递协议)。以前称为TTMP,是一种简单的基于文本的协议,专为与面向消息的中间件(message-oriented middleware MOM)一起工作而设计。

​ STOMP提供了一种可互操作的有线格式,以便STOMP客户端可以与任何STOMP消息代理通信以在许多语言、平台和代理之间提供简单和广泛的消息互操作性。

二、设计简洁

​ STOMP是一个非常简单且易于实现的协议,来自HTTP设计学派;服务器端可能很难很好地实现,但编写一个客户端来连接很容易。例如,你可以使用Telnet登录任何STOMP代理并与之交互。

​ 许多开发人员告诉我们,他们已经设法在几个小时内用自己的特定语言、运行时或平台编写了一个STOMP客户端到STOMP网络中。因此,如果你喜欢的语言/运行时没有提供足够好的STOMP客户端,不要害怕编写一个。

三、协议简介

该协议与HTTP大致相似,并使用以下命令在TCP上工作:

  • CONNECT
  • SEND
  • SUBSCRIBE
  • UNSUBSCRIBE
  • BEGIN
  • COMMIT
  • ABORT
  • ACT
  • NACK
  • DISCONNECT

客户端和服务器之间的通信是通过由多条组成的“框架”进行的。第一行包含命令,后面是:格式的标题(每行一个),后面是空行,然后是正文内容,以空字符结尾。服务器和客户端之间的通信是通过MESSAGE、RECEIPT或ERROR帧进行的,这些帧具有类似的标头和正文内容格式。

四、案例
  • 客户端发送消息给服务器:
SEND
destination:/app/hello
content-length:17

{"name":"你好"}
  • 服务器端发送消息给客户端:
MESSAGE
destination:/topic/greetings
content-type:application/json
subscription:sub-0
message-id:eda33740-c0fa-2bcb-1ce5-be1e1b093750-3
content-length:28

{"content":"Hello, 你好!"}
五、实现的消息中间件

以下是支持STOMP的MOM中间件:

  • Apache ActiveMQ,
  • Fuse Message Broker
  • HornetQ
  • Open Message Queue (OpenMQ)
  • RabbitMQ (message broker, has support for STOMP)
  • syslog-ng through its STOMP destination plugin

STOMP网站还维护这一份实现列表:https://stomp.github.io/implementations.html

STOMP官方地址:https://stomp.github.io/

StompJs官网地址:https://stomp-js.github.io/

STOMP:https://en.wikipedia.org/wiki/Streaming_Text_Oriented_Messaging_Protocol

MOM(message-oriented middleware):https://en.wikipedia.org/wiki/Category:Message-oriented_middleware

应用层协议(Application layer protocols):https://en.wikipedia.org/wiki/Category:Application_layer_protocols
开源SDK:https://github.com/mingyang66/spring-parent

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值