【发布时间】:2020-06-30 00:57:34
【问题描述】:
我正在编写一个单块帧解码器/编码器,当我在编写单元测试时,我想知道,没有标头的单块帧会是什么样子?
我猜,在 C++ 中,它会是这样的:
std::string frameDataAsString =
"SEND\n"
"\n"
"This is a test message";
对吗?
【问题讨论】:
标签: stomp
我正在编写一个单块帧解码器/编码器,当我在编写单元测试时,我想知道,没有标头的单块帧会是什么样子?
我猜,在 C++ 中,它会是这样的:
std::string frameDataAsString =
"SEND\n"
"\n"
"This is a test message";
对吗?
【问题讨论】:
标签: stomp
你的框架看起来很近。我认为它需要以 NULL 八位字节(例如 \0 或 \u0000)结尾,如 STOMP 1.2 specification 中所述:
...框架的结构如下:
COMMAND header1:value1 header2:value2 Body^@该帧以一个以行尾 (EOL) 结尾的命令字符串开始,它由一个可选的回车符 (octet 13) 和一个必需的换行符 (octet 10) 组成。命令后面是
<key>:<value>格式的零个或多个标头条目。每个标头条目都由 EOL 终止。空行(即额外的 EOL)表示标题的结尾和正文的开头。正文之后是 NULL 八位字节。本文档中的示例将使用 ASCII 中的^@、control-@来表示 NULL 八位字节。 NULL 八位字节后面可以选择跟随多个 EOL。
【讨论】: