Paho-MQTT 检查消息队列大小

Paho-MQTT check message queue size

我正在从 Arduino 发布 MQTT 消息,并从 Raspberry Pi 订阅这些消息。有时发布速度快于 Raspberry 可以接收(和处理)的速度。

我正在寻找一种方法来检查有多少消息在 Raspberry 端排队。我正在使用 Paho-MQTT。我只看到可以设置最大队列大小,但如何检查当前队列大小? (如果可能的话。)

代理中没有队列,所有消息都在发布时传递。

Paho 客户端是单线程的,消息接收回调是在网络线程上处理的,因此消息可能会在网络堆栈上备份(对于 QOS0 消息)。 QOS1/2 消息将在代理中备份,直到当前消息的 QOS 握手完成。

max_queued 消息设置是关于客户端在阻塞之前将接受发布多少 QOS 1/2 消息,而不是它将排队多少传入消息。

如果您想以可测量的方式对消息进行排队,则让消息接收回调将消息放入本地队列并让第二个线程(或线程池,如果它们可以并行处理)从中获取消息本地队列。