2016-08-22 3 views
0

이것이 가능한지 확실하지 않습니다. 일정 기간 동안 주제 아래 계속 유지할 메시지를 여러 개 설정하면 나중에 모든 메시지를 가져올 수 있습니까?MQTT 주제에 일련의 메시지 보관

내 서비스 간의 통신을 위해 이미 MQTT 브로커 (Mosquitto)를 설정했지만 몇 시간 동안 메시지를 저장할 수있는 저장소가 필요하며 나중에 24 시간 분량의 메시지를 보관하고 나중에 풀 수 있습니다.

답변

1

메시지 지속성은 가입했지만 현재 연결이 끊어진 클라이언트에만 해당하며 다시 연결하면 cleanSession 플래그가 false로 설정된 클라이언트를위한 것입니다. 어떤 클라이언트에서 연결이 끊긴 동안 게시 된 모든 메시지.

MQTT 브로커를 사용하여 임의의 수의 메시지를 저장하고 나중에 검색 할 수 없습니다. 클라이언트가 연결되어있는 경우 가입 된 항목 모음에 대한 모든 메시지가 가능한 빨리 전달됩니다.

나중에 로그를 남기려면 나중에 별도로 구현해야합니다. 데이터베이스에 메시지를 저장하는 응용 프로그램의 예가 많이 있습니다.

+0

감사합니다. 나는 그것이 사실이라고 생각했지만 두 번째 수표가 이미 거기에 있다는 것을 생각했기 때문에 – dave

+0

두 개의 연속 된 메시지가 같은 주제의 브로커에 게시되면 두 번째 _replaces_가 첫 번째 일임을 이해하게되었습니다. 브로커는 두 번째만을 보유합니다. 설명 된 가입자가 연결되어 있으면 두 메시지를 모두 받게됩니까? 연결이 끊어지고 다시 연결되면 두 메시지 중 가장 최근의 메시지 만 수신됩니까? –

+1

브로커는 유지 비트 세트가있는 마지막 메시지를 항상 전송하지만 위에서 설명한대로 모든 ** 대기중인 메시지를 보내므로 두 메시지를 순서대로 수신합니다 (유지 된 메시지가 먼저 전송 될 수 있으므로) – hardillb