没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
2023/8/13 14:07
stomp.github.io/stomp-specification-1.2.html#SUBSCRIBE_id_Header
stomp.github.io/stomp-specification-1.2.html#SUBSCRIBE_id_Header
1/15
STOMP 协议规范,版本 1.2
抽象的
概述
背景
协议概述
协议的变更
设计理念
一致性
STOMP 框架
值编码
身体
标准标头
标头内容长度
标头内容类型
抬头收据
重复的标题条目
尺寸限制
连接延迟
正在连接
CONNECT 或 STOMP 框架
连接框架
协议协商
心脏跳动
客户端框架
发送
订阅
订阅 id 标头
订阅确认标头
取消订阅
确认
不确认
开始
犯罪
中止
断开
服务器框架
信息
收据
错误
框架和标题
增强BNF
执照
抽象的
踩踏 1.2 实施
2023/8/13 14:07
stomp.github.io/stomp-specification-1.2.html#SUBSCRIBE_id_Header
stomp.github.io/stomp-specification-1.2.html#SUBSCRIBE_id_Header
2/15
STOMP 是一种简单的可互操作协议,设计用于通过中介服务器在客户端之间传递异步消息。它为
这些客户端和服务器之间传递的消息定义了基于文本的有线格式。
STOMP 已被积极使用多年,并受到许多消息代理和客户端库的支持。该规范定义了 STOMP 1.2
协议,是STOMP 1.1的更新。
请将反馈发送至 stomp-spec@googlegroups.com 邮件列表。
概述
背景
STOMP 源于从 Ruby、Python 和 Perl 等脚本语言连接到企业消息代理的需求。在这样的环境中,
通常执行逻辑上简单的操作,例如“可靠地发送单个消息并断开连接”或“消耗给定目的地上的所有消
息”。
它是其他开放消息传递协议(例如 AMQP)和 JMS 代理中使用的实现特定有线协议(例如
OpenWire)的替代方案。它的独特之处在于涵盖了常用消息传递操作的一小部分,而不是提供全面
的消息传递 API。
最近,STOMP 已经成熟为一种协议,可以在其现在提供的线路级功能方面超越这些简单的用例,
但仍然保持其简单性和互操作性的核心设计原则。
协议概述
STOMP 是一种基于帧的协议,其帧以 HTTP 为模型。帧由一个命令、一组可选标头和一个可选主
体组成。STOMP 基于文本,但也允许传输二进制消息。STOMP 的默认编码是 UTF-8,但它支持
消息正文的替代编码规范。
STOMP 服务器被建模为一组可以向其发送消息的目的地。STOMP 协议将目标视为不透明字符串,
其语法是特定于服务器实现的。此外,STOMP 没有定义目的地的传递语义。目的地的传递或“消息
交换”语义可能因服务器而异,甚至因目的地而异。这使得服务器能够创造性地使用 STOMP 支持的
语义。
STOMP 客户端是一个用户代理,可以以两种(可能同时)模式运行:
SEND 作为生产者,通过帧将消息发送到服务器上的目的地
作为消费者,SUBSCRIBE向给定目的地发送帧并以帧的形式从服务器接收消息MESSAGE。
协议的变更
STOMP 1.2 主要向后兼容 STOMP 1.1。只有两个不兼容的更改:
现在可以使用回车加换行来结束帧行,而不仅仅是换行
消息确认已被简化,现在使用专用标头
除此之外,STOMP 1.2 没有引入新功能,但重点澄清了规范的某些领域,例如:
重复的帧头条目
使用content-length和content-type标头
2023/8/13 14:07
stomp.github.io/stomp-specification-1.2.html#SUBSCRIBE_id_Header
stomp.github.io/stomp-specification-1.2.html#SUBSCRIBE_id_Header
3/15
需要STOMP服务器对框架的支持
连接延迟
订阅和交易标识符的范围和唯一性
RECEIPT该帧相对于前一帧的含义
设计理念
推动 STOMP 设计的主要理念是简单性和互操作性。
STOMP 被设计为一种轻量级协议,易于在客户端和服务器端以多种语言实现。这特别意味着对服
务器架构没有太多限制,并且许多功能(例如目的地命名和可靠性语义)是特定于实现的。
在本规范中,我们将注意 STOMP 1.2 未明确定义的服务器功能。您应该查阅 STOMP 服务器的文
档,了解这些功能的具体实现细节。
一致性
本文档中的关键词“必须”、“不得”、“必需”、“应”、“不应”、“应该”、“不应该”、“推荐”、“可以”和
“可选”是按照RFC 2119中的描述进行解释。
实现可以对不受约束的输入施加特定于实现的限制,例如,以防止拒绝服务攻击、防止内存不足或
解决特定于平台的限制。
本规范定义的一致性类别是 STOMP 客户端和 STOMP 服务器。
STOMP 框架
STOMP 是一种基于帧的协议,它假定底层有可靠的 2 路流网络协议(例如 TCP)。客户端和服务
器将使用通过流发送的 STOMP 帧进行通信。框架的结构如下所示:
COMMAND
header1:value1
header2:value2
Body^@
该帧以一个以行尾 (EOL) 结尾的命令字符串开始,该命令字符串由一个可选的回车符(八位字节
13)和后跟一个必需的换行符(八位字节 10)组成。该命令后面是零个或多个格式标头条目<key>:
<value>。每个标头条目均以 EOL 终止。空行(即额外的 EOL)表示标头的结束和正文的开始。主
体后面是 NULL 八位字节。本文档中的示例将使用^@ASCII 中的 control-@ 来表示 NULL 八位字
节。NULL 八位位组后面可以选择跟随多个 EOL。有关如何解析 STOMP 帧的更多详细信息,请参
阅 本文档的增强 BNF部分。
本文档中引用的所有命令和标头名称均区分大小写。
值编码
剩余14页未读,继续阅读
资源评论
timi先生
- 粉丝: 4469
- 资源: 23
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功