在 STOMP(Streaming Text Orientated Messaging Protocol)协议中,CONNECTED
帧是服务器向客户端发送的响应帧,用于确认连接建立成功,并包含了连接建立后的相关信息,例如协议版本、心跳间隔等。本文将深入解析 CONNECTED
帧,从其语法结构、头部字段、心跳机制等方面进行详细讲解,帮助您全面理解 STOMP 连接建立过程中的关键信息。
一、CONNECTED 帧的语法结构
CONNECTED
帧是 STOMP 协议中的一种响应帧,其语法结构如下:
CONNECTED
[header-key: header-value]
...
\n\n
其中:
CONNECTED
:表示连接成功响应命令。[header-key: header-value]
:表示头部字段,包含连接建立后的相关信息。\n\n
:表示帧结束标志。
二、CONNECTED 帧的头部字段
CONNECTED
帧包含多个头部字段,用于向客户端传递连接建立后的相关信息。以下是一些常用的头部字段:
1. version
:
该头部字段用于指定服务器所使用的 STOMP 协议版本,客户端可以根据该字段确认连接建立的协议版本。
示例:
version:1.1
2. heart-beat
:
该头部字段用于指定服务器的心跳间隔,以毫秒为单位,两个值之间用逗号 ,
分隔,分别表示服务器发送心跳的间隔和客户端发送心跳的间隔。
示例:
heart-beat:0,0
3. session
:
该头部字段用于指定当前连接的会话 ID,客户端可以使用该 ID 来标识当前连接。
示例:
session:1234567890
4. server
:
该头部字段用于指定服务器的名称或版本信息,方便客户端识别服务器。
示例:
server: RabbitMQ 3.9.0
5. user
:
该头部字段用于指定当前连接的用户名称,如果连接需要身份验证,则该字段会包含用户的用户名。
示例:
user: john.doe
三、CONNECTED 帧的示例
以下是一个完整的 CONNECTED
帧示例,包含了常用的头部字段:
CONNECTED
version:1.1
heart-beat:0,0
session:1234567890
server: RabbitMQ 3.9.0
user: john.doe
四、心跳机制
心跳机制是 STOMP 协议中的一种重要机制,用于检测连接是否正常。客户端和服务器会定期发送心跳消息,以确认对方是否在线。
1. 心跳间隔:
heart-beat
头部字段用于