2017-10-03 12 views
0

this page에서 설명한대로 Eclipse Paho Python 클라이언트는 클라이언트가 오프라인 일 때 보내지 않는 메시지에 대한 버퍼를 제공합니다. 클라이언트가 브로커에 다시 연결할 때이 메시지가 최종적으로 전송됩니다. .Eclipse Paho MQTT : Python 클라이언트에서 메시지의 오프라인 버퍼링을 비활성화합니다.

많은 수의 클라이언트가 동시에 다시 연결될 때 서버 플러딩을 방지하기 위해이 기능을 비활성화하는 방법이 있습니까?

답변

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)

재 초기화() 함수 로서의 시작 상태로 클라이언트를 다시 설정이 방금 생성 된 경우 . 클라이언트() 생성자 과 동일한 인수를 사용합니다. 당신은이를 설정할 수 있습니다

mqttc.reinitialise()

예 다시 on_disconnect 전화에서 호출합니다.

+0

대단히 고맙습니다. 필요한 기능이었습니다. –