MQTT: Raw Header - 不明白这个
MQTT: Raw Header - Dont't understand this one
我正在开发一个小型 MQTT 客户端来订阅和监视某些主题。在大多数情况下,它在假设 one-byte 长度信息(第二个字节)的情况下运行良好。但是我有时会收到这个 subscribe 0x30 响应,我无法理解。它似乎有一个多字节长度,但两个长度字节都没有设置其 MSB。
Header
0000: 3031312700127b6c756d6f7375727d2f 011'..{lumosur}/
0010: 6461746574696d65323032302d30322d datetime2020-02-
0020: 30342032333a32313a3437311900127b 04 23:21:471...{
怎么算出来的?
感谢您的帮助。
毫米.
没关系。虽然我盯着那个问题看了好几个小时,但就在我发布这个问题之后,我突然明白了。该协议没有问题:我错误地读取了数据。
这是一个二进制协议,所以我必须根据 header 中的长度字段读取块。我没有正确地做到这一点,所以我假设的数据是正确的 header 数据实际上没有正确对齐。
抱歉打扰了:D
迈克尔
我正在开发一个小型 MQTT 客户端来订阅和监视某些主题。在大多数情况下,它在假设 one-byte 长度信息(第二个字节)的情况下运行良好。但是我有时会收到这个 subscribe 0x30 响应,我无法理解。它似乎有一个多字节长度,但两个长度字节都没有设置其 MSB。
Header
0000: 3031312700127b6c756d6f7375727d2f 011'..{lumosur}/
0010: 6461746574696d65323032302d30322d datetime2020-02-
0020: 30342032333a32313a3437311900127b 04 23:21:471...{
怎么算出来的?
感谢您的帮助。
毫米.
没关系。虽然我盯着那个问题看了好几个小时,但就在我发布这个问题之后,我突然明白了。该协议没有问题:我错误地读取了数据。
这是一个二进制协议,所以我必须根据 header 中的长度字段读取块。我没有正确地做到这一点,所以我假设的数据是正确的 header 数据实际上没有正确对齐。
抱歉打扰了:D
迈克尔