关于MQTT固定头结构?

关于MQTT固定头结构?,mqtt,messagebroker,mosquitto,paho,Mqtt,Messagebroker,Mosquitto,Paho,我正在尝试实现一个MQTT库。根据教程,MQTT消息的固定头应该如发布的图片所示 同样在同一教程中,我发现固定头的编码方法写为: mqtt.write((byte) ((retain ? 1 : 0) | qos << 1 | (dup ? 1 : 0) << 3 | type << 4)); 我的问题是,根据发布的固定头规范,字段retain、qos、dup和msg type应该分别有1、2、1和4位 为什么msg类型字段扩展到5位 为什么msg类型字段扩

我正在尝试实现一个MQTT库。根据教程,MQTT消息的固定头应该如发布的图片所示

同样在同一教程中,我发现固定头的编码方法写为:

mqtt.write((byte) ((retain ? 1 : 0) | qos << 1 | (dup ? 1 : 0) << 3 | type << 4));
我的问题是,根据发布的固定头规范,字段retain、qos、dup和msg type应该分别有1、2、1和4位

为什么msg类型字段扩展到5位 为什么msg类型字段扩展到5位
为什么msg类型字段扩展到5位你好,请对此问题进行解答,也许你想回答它或纠正我的理解。你好。嗯,我不熟悉MQTT。我不知道答案。对不起,你好,请你回答这个问题,或者纠正我的理解。你好。嗯,我不熟悉MQTT。我不知道答案。很抱歉
bit: |   7   |   6   |   5   |   4   |   3   |   2   |   1   |   0   |
======================================================================
                                     |------------- type ------------|
                                                             |- dup -|
                                                     |----- qos -----|
                                                             | retain|
bit: |   7   |   6   |   5   |   4   |   3   |   2   |   1   |   0   |
======================================================================
     |----------- type<<4 -----------|                                
                                     | dup<<3|                        
                                             |---- qos<<1 ---|        
                                                             | retain|
bit: |   7   |   6   |   5   |   4   |   3   |   2   |   1   |   0   |
======================================================================
     |----------- type<<4 -----------| dup<<3|---- qos<<1 ---| retain|