python paho客户端代理连接

2024-06-14 07:26:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我的出版商和经纪人在不同的系统上工作。我使用QOS=2传递消息,使用PythonPAHOMQTT代理。它进一步扩展到 MQTT - Is there a way to check if the client is still connected

1)当我向已连接的代理发布消息时,它通过调用_publish()回调来确认我。但当我将运行在不同机器上的代理与网络断开连接时,发布者将发布消息存储在本地计算机上,当我将代理连接到网络时,它会将以前所有的消息发布到代理。我认为这些信息存储为机上消息(未确认),如果这些消息是机上消息,那么这些消息存储在哪里,这些消息是否有任何限制,因为我的代码中没有包含任何有关机上消息的内容。在

2)在第一种情况下,我将我的代理从网络断开,现在我关闭我的代理并再次连接到网络,我的程序调用_disconnect()回调表示意外断开,然后将所有未发布的消息发布到代理。 a) 我很困惑,为什么只有当我关闭broker时才调用on_disconnect()回调,而不是在断开代理与本地网络的连接时才调用on_disconnect()回调。 b) 方法只在代理再次连接到网络时调用。 有没有办法,如果我的经纪人突然断开,然后立即通知出版商?在

3)我在实时gps跟踪中使用mqtt,我想在发布服务器未连接到broker时将消息存储到本地数据库,但我无法找到任何方法来立即知道当发布服务器与broker断开连接时。在

4)使用QOS=2是确保消息传递到代理的最佳方式,还是在断开与代理的连接时使用本地数据库进行存储,然后自动与本地数据库同步以发布所有消息


Tags: 方法网络服务器数据库消息代理on系统