mqtt-sn 原始数据格式是什么

mqtt-sn what is the raw data format

我对这个 mqtt-sn 东西很陌生。所以我的问题是 - mqtt-sn 消息是什么样子的。所以我指的是原始数据格式。我不太清楚八位位组是什么意思。所以据我所知,八位字节是一个字节。

那么传输的数据是二进制的吗?

或者八位位组是什么意思?

有人可以给我一个示例消息吗?规范中没有示例消息真的很糟糕。

谢谢, 马蒂亚斯

一个八位字节就是一个字节。

没有示例负载,因为规范没有规定负载格式。想怎么用就怎么用。

一个八位字节只是一个 collection 的 8 位,所以只是一个字节的另一个名称

所以一条消息由 header 组成,由 2 或 4 个字节和消息组成 body。

header 被细分为 1 或 3 个字节的长度和 1 个字节的类型。如果第一个字节是 0x01 那么接下来的 2 个字节就是长度,否则第一个字节的值就是长度。

下一个字节是一个类型,table 的有效消息类型可以在 spec

的第 5.2.2 节中找到

消息 body 因类型而异。

但是要在 AB (0x41, 0x42) 的主题 ID 上发布带有有效负载 HelloWorld 的消息,看起来像这样:

0x0F  - length (15 bytes total, including length)
0x0C  - msg type (publish)
0x02  - flags (QOS 0, topic name)
0x41  - topic ID 1
0x42  - topic ID 2
0x00  - MsgID (00 for QOS 0)
0x48  - H
0x65  - e
0x6C  - l
0x6C  - l
0x6F  - o
0x57  - W
0x6F  - o
0x72  - r
0x6C  - l
0x64  - d

其中主题 ID 是主题注册消息的输出(规范中的第 6.5 节)