Retained消息
参考:https://www.emqx.com/zh/blog/mqtt5-features-retain-message
当你为一个topic设置了Retained消息,那么这个消息会保留在Broker里面,当有新的订阅者订阅到此topic之后,就会接收到这个Retained消息(也就是payload)
保留消息虽然存储在服务端中,但它并不属于会话的一部分。也就是说,即便发布这个保留消息的会话终结,保留消息也不会被删除。
一个Topic只能有一个Retained消息,后设置的会覆盖前面设置的。
在python中对应的方法是:
matt.publish("test", payload="online", qos=0, retain=True)
删除Retained的方法是
client.publish("test", payload=None, qos=0, retain=True)
MQTT 遗嘱消息也称为Last Will and Testament
在python中设置遗嘱消息的方法是:
mqtt_client.will_set('test', "offline", qos=0, retain=True) # 即是遗嘱也是Retained
mqtt_client.will_set('test', "offline", qos=0, retain=False) # 只是遗嘱
如果设置遗嘱,retain为False的时候,新的client订阅是不会收到遗嘱消息的。
如果re