物联网核心协议MQTT快速入门3 发布消息与取消订阅

发布信息

mosquitto_pub -V mqttv311 -t sensors/drone01/altitude -m "10 f" -d
Client (null) sending CONNECT
Client (null) received CONNACK (0)
Client (null) sending PUBLISH (d0, q0, r0, m1, 'sensors/drone01/altitude', ... (4 bytes))
Client (null) sending DISCONNECT

MQTT.fx也可以发布消息

  • PacketId

如果QoS级别等于0,该字段的值将为0或不存在。如果QoS级别等于1或2,数据包标识符将有一个数字值来识别数据包,并使其能够识别与该数据包相关的响应。

  • Dup

如果QoS级别为0,则该字段的值为0,如果QoS级别为1或2,MQTT客户端库或MQTT服务器可以在用户没有收到第一条消息时,重新发送之前由客户端发布的消息。每当试图重新发送一个已经发布的消息时,Dup标志的值必须为1或true。

  • QoS

指定消息的QoS级别。

  • Retain

如果这个标志的值被设置为1或true,MQTT服务器将以其指定的QoS级别存储消息。每当新的 MQTT 客户端订阅与存储或保留消息的主题相匹配的主题过滤器时,最后存储的这个主题的消息将被发送到新的订阅者。如果这个标志的值被设置为0或false,MQTT服务器不会存储消息,也不会用相同的主题替换保留的消息。

  • TopicName :

主题名称。主题名称有一个层次结构,其中斜线(/)被用作分隔符。

有效载荷包含MQTT客户端希望MQTT服务器发布的实际消息。MQTT是数据不可知的,因此,我们可以发送任何二进制数据,我们没有JSON或XML等限制。当然,如果我们愿意的话,我们可以使用这些或其他方式来组织有效载荷。在我们的例子中,我们发送了一个字符串,其中包括一个代表高度的数字,后面是一个空格和一个 "f",表示计量单位是英尺 。

MQTT服务器将读取有效的PUBLISH数据包,它将只对QoS级别大于0的数据包做出响应。在QoS等级为0的情况下,MQTT不会响应。MQTT服务器将确定所有订阅的主题与消息指定的主题名相匹配的订阅者,服务器将把消息发布给这些客户端。

退订主题

下图显示了MQTT客户端和MQTT服务器之间的交互

你可能感兴趣的:(物联网核心协议MQTT快速入门3 发布消息与取消订阅)