Mqtt 命令以显示发送给MOSQUITO代理的所有消息?
我一直在使用以下命令查看Mosquitto代理上发布的消息:Mqtt 命令以显示发送给MOSQUITO代理的所有消息?,mqtt,mosquitto,paho,broker,Mqtt,Mosquitto,Paho,Broker,我一直在使用以下命令查看Mosquitto代理上发布的消息: mosquitto_sub -h IP_ADDRESS -t TOPIC_NAME 但是,当我运行此命令时,我只能看到最近的消息,而不是所有已发布的消息。在Mqtt客户机中,我可以看到传递的消息 是否有查看传递给代理的所有消息的命令 该命令仅在我们开始订阅时显示消息 我在消息属性中使用了值2表示服务质量。MQTT作为协议不会存储所有消息,无论它们发布/订阅的服务质量如何 同样重要的是要记住,QOS一次只适用于一条腿。例如,在QOS2
mosquitto_sub -h IP_ADDRESS -t TOPIC_NAME
但是,当我运行此命令时,我只能看到最近的消息,而不是所有已发布的消息。在Mqtt客户机中,我可以看到传递的消息
我在消息属性中使用了值2表示服务质量。MQTT作为协议不会存储所有消息,无论它们发布/订阅的服务质量如何 同样重要的是要记住,QOS一次只适用于一条腿。例如,在QOS2上发布的消息确保到达代理,但不承诺将其交付给任何客户端,这取决于这些客户端订阅主题的QOS MQTT将为已知客户机排队消息,前提是该客户机之前已订阅QOS 1或2,并在CleanseSession标志设置为false的情况下重新连接。此连接需要与上一个会话完全相同的客户端id 因此,如果运行以下命令:
mosquitto_sub -h [ip addr] -t [topic] -c -i [clientid] -q 2
如果再次运行同一命令时断开连接(killmosquitto\u sub
),这将创建一个持久会话(确保保持[clientid]
同样,在客户端断开连接时,代理将传递所有发送的消息。但是,在会话建立之前,无法通过第一次运行该命令来发布消息
告诉客户端将cleanSession标志设置为false-c
设置客户端id-i[clientid]
将订阅QOS设置为2-q 2
如果这是为了调试一个问题,那么一个可能的选择是提高MOSQUITO实例的日志记录级别,然后它将绝对记录所有内容,但这将产生大量输出。Thank you@hardillb,我一定会尝试此命令