MQTT Option(Retain,CleanSession,LWT)
2021. 10. 22. 15:29ㆍAndroid/MQTT
Retain
Retain 기능은 마지막으로 Publish된 메시지를 MQTT 서버가 보관 해 두었다가 새로운 Subscriber에 메시지를 전달하는 기능이다.
MQTT는 Publish/Subscribe 타입 모델이다. 따라서, Publish된 때 Subscribe한 클라이언트에만 메시지가 전송된다. 따라서 예를 들면 1 시간 마다 업데이트 되는 정보를 얻는 Subscribe로 해도 최대 1 시간은 아무것도 정보를 얻을 수 없는 것이다.
그러나 이 경우에도 Retain 기능을 사용하면 최신 정보를 얻을 수 있다.
메세지 보내기(Retain On)
mosquitto_pub -h 192.168.0.241 -t /test -m "subscribe ok!!" -r
구독 하기
mosquitto_sub -h 192.168.0.241 -t /test
subscribe ok!!
구독을 할때 마다 "subscribe ok!!" 메세지를 전달 받는다
세션
- 영구 클라리언트 옵션이 존재한다. 영구 클라이언트(클린 세션이 false로 설정된 클라이언트)는 연결을 끊지 않고 대기 상태로 바꾼다. 대기 상태에 있다가 클라이언트가 연결되면 그 때 다시 연결한다.
- 일반적인 클라이언트는 Broker에서 Keep Alive 메시지를 보내고 살아있다는 메시지가 오지 않는다면 끊어버린다. 만기 기간은 시간, 일, 주, 월 및 연도로 정할 수 있다.
LWT(Last will and testament)
- MQTT의 경우 subscribe 시점에서 자신이 접속 종료가 되었을 때 특정 topic으로 지정한 메시지를 보내도록 미리 설정할 수 있다.
구독하기(LWT 토픽&메세지 설정)
mosquitto_sub -h 192.168.0.241 -t /test --will-topic /last --will-payload "Will Message"
LWT Topic 으로 구독하기
mosquitto_sub -h 192.168.0.241 -t /last
Will Message
구독한 /test 종료시 /last 토픽으로 메세지 전달 됨
참고
http://spectrumdig.blogspot.com/2016/02/mqtt-lwtlast-will-and-testament.html
https://dalkomit.tistory.com/126
'Android > MQTT' 카테고리의 다른 글
MQTT Option(Qos) (0) | 2021.10.22 |
---|---|
Mosquitto 설치 및 테스트 (0) | 2021.10.13 |
MQTT 사용하기 (0) | 2021.10.13 |