我还没有阅读MQTT协议规范,只是在使用mosquitto 1.5.3进行测试。
1. 运行mosquitto服务器/代理
使用默认配置。
mosquitto -v
1541075091: mosquitto version 1.5.3 starting
1541075091: Using default config.
2. 发布测试消息
AAA sub topic 'aaa'
BBB sub topic '+'
DDD pub topic 'aaa'
3. 服务器标准输出
1541075322: New connection from 10.1.1.159 on port 1883.
1541075322: New client connected from 10.1.1.159 as DDD (c1, k60).
1541075322: No will message specified.
1541075322: Sending CONNACK to DDD (0, 0)
1541075322: Received PUBLISH from DDD (d0, q1, r1, m1, 'aaa', ... (8 bytes))
1541075322: Sending PUBACK to DDD (Mid: 1)
1541075322: Sending PUBLISH to AAA (d0, q0, r0, m0, 'aaa', ... (8 bytes))
1541075322: Sending PUBLISH to BBB (d0, q0, r0, m0, 'aaa', ... (8 bytes))
1541075322: Received DISCONNECT from DDD
1541075322: Client DDD disconnected.
在发布消息之前,服务器向DDD发送PUBACK
。
4. 所以我猜
pub qos=1
只确保代理接收到消息,
sub qos
也是如此:
[ pub ] ---pub_qos---> [ broker ] ---sub_qos--> [ sub ]
// MQTT客户端和代理网络拓扑是星型网络。
// 如果我有时间,我会阅读协议规范。