Eclipse Paho MQTT:在Python客户端中禁用消息的离线缓冲

时间:2017-10-03 07:44:57

标签: python eclipse mqtt paho

this page所述,Eclipse Paho Python客户端为客户端脱机时未发送的消息提供缓冲区,这些消息最终在客户端重新连接到代理时发送。

当大量客户端同时重新连接时,有没有办法禁用此功能以防止服务器泛滥?

1 个答案:

答案 0 :(得分:1)

调用reinitialise()方法将清除已存储的消息。

来自文档here

  

clean_session

a boolean that determines the client type. If True, the broker will remove all information about this client when it disconnects. If
     

错误,客户端是持久的客户端和订阅信息   当客户端断开连接时,将保留排队的消息。

     

请注意,客户端永远不会在断开连接时丢弃自己的外发邮件。调用connect()或reconnect()将导致消息   被重新发送。使用reinitialise()将客户端重置为原始客户端   状态。

重新初始化的文档在这里:

  

重新初始化()

     

reinitialise(client_id="", clean_session=True, userdata=None)

     

reinitialise()函数将客户端重置为其初始状态为   如果它刚刚被创建。它采用与...相同的参数   Client()构造函数。实施例

     

mqttc.reinitialise()

您可以将其设置为在on_disconnect回拨中调用。