본문 바로가기
네트워크 정리/통신관련(MQTT,ssh,rosbridge)

MQTTbox 사용법

by 알 수 없는 사용자 2022. 6. 14.

유언장 설명

https://www.hivemq.com/blog/mqtt-essentials-part-9-last-will-and-testament/

 

Last Will and Testament - MQTT Essentials: Part 9

Related Links Last Will and Testament - MQTT Essentials: Part 9 Written by The HiveMQ Team Category: MQTT Essentials MQTT Published: March 9, 2015 Welcome to the ninth part of MQTT Essentials. A ten-part blog series on the core features and concepts of the

www.hivemq.com

 


 

미리 알아야 하는 내용

Will == LastWillTreatment == 유언장

MQTT에서 유언장(LWT) 기능을 사용하여 다른 클라이언트에게 비정상적으로 연결이 끊긴 클라이언트에 대해 알립니다. 각 클라이언트는 브로커에 연결할 때 마지막 의지 메시지를 지정할 수 있습니다. 마지막 윌 메시지는 주제, 보유 메시지 플래그, QoS 및 페이로드가 포함된 일반 MQTT 메시지입니다. 브로커는 클라이언트가 비정상적으로 연결 해제되었음을 감지할 때까지 메시지를 저장합니다. 비정상적 연결 해제에 대한 응답으로 브로커는 last-will 메시지 주제의 가입된 모든 클라이언트에 last-will 메시지를 보냅니다. 클라이언트가 올바른 DISCONNECT 메시지와 함께 정상적으로 연결을 끊으면 브로커는 저장된 LWT 메시지를 버립니다.

 

retain

"retain" 플래그가 하는 일은 MQTT 브로커에게 모든 주제에 대해 받은 마지막 메시지를 유지하고 새 구독자가 시작될 때 항상 이를 전달하도록 지시하는 것 입니다. 그렇지 않으면 유지 플래그 없이 보낸 메시지와 동일하게 작동합니다.
그니까 예를들면 pub 을 했는데 sub쪽전원이 꺼져있어서 pub을 못한경우 마지막 pub한 message를 유지(retain)한 다음 같은 Topic의 client가 켜지는 순간 유지(retain)했던 message를 보내는 기능 느낌이다.

 


1. MQTT Client Name

클라이언트를 구성할 수 있는 창이 열리며 처음에는 "MQTT Client Name"에서 MQTT 클라이언트의 이름을 정의합니다.

 

2. Protocol

다음으로 프로토콜을 mqt/tcp로 설정합니다. 이것은 MQTT 클라이언트가 브로커에 연결하는 데 사용하는 프로토콜입니다. MQTTBox는 TCP, SSL/TLS, MQTT, MQTT 웹소켓(WS) 및 보안 웹소켓(WSS)을 지원합니다.

 

3. Username

MQTT_server(브로커)에 접속할 허용된 ID
None으로 지정가능

 

4. Reconnect Period

이 정의는 두 개의 재연결 사이의 시간(밀리초)을 나타냅니다. 

 

5. Will - Topic

연결이 끊길 경우 Last Will(유언장)을 수신하는 스레드 구성을 갖게 됩니다. 스레드를 생성하거나 준비를 사용합니다. 생성하려는 경우 나중에 게시자에 사용할 스레드와 동일한 스레드를 사용할 수 있습니다.

 

6. MQTT Client id

이 ID는 프로그램 자체에서 임의로 생성된 고객 ID입니다. 각 고객은 고유한 ID를 소유합니다. 브로커는 ID를 사용하여 각 클라이언트와 해당 연결 상태를 식별합니다. 프로그램에서 다른 클라이언트를 관리하도록 하려면 원을 구성하는 화살표를 클릭합니다.

 

7. Host

브로커(mqtt_server)의 주소를 기입합니다.
domain으로 기입하는 경우랑
"ip:port" 로 기입하는 경우가 있습니다. 

 

8. password

MQTT_server(브로커)에 접속할 허용된 PW
None으로 지정가능

 

9. Cnnect Timeout

아래 설정은 연결 시간 초과(밀리초)를 나타냅니다. 새 브로커 CONNACK이(가) 있을 때까지의 대기 시간입니다. CONNACK은 클라이언트가 보낸 CONNECT에 대한 브로커의 응답입니다. 또한 변경은 수행하지 않습니다.

 

10. Will - Qos

Will-QoS에서는 Last Will의 품질을 정의합니다.

 

11. Append timestamp to MQTT client id?

이 설정에서 "MQTT"가 시간과 날짜를 고객 ID에 첨부하도록 하려면 이 옵션을 선택하면 동일한 사용자가 동일한 ID로 클라이언트를 작성할 수 없게 됩니다.

 

12. Clean Session

그런 다음 다시 연결할 때마다 Clean Session으로 시작할지 여부를 선택할 수 있습니다. 위에서 설명한 대로 Persistent Session으로 시작하려면 이 확인란의 선택을 취소합니다.

 

13. Reschedule Pings?

Ping을 다시 예약할지 여부를 선택합니다. 그러면 연결을 보여주기 위해 Ping이 자주 재전송됩니다.

 

14. KeepAlive (seconds)

KeepAlive는 브로커에게 핑을 보내는 간격(초)이며 변경하지 않습니다.

 

15. Will - Retain

Will-Retain 옵션을 선택하면 새 메시지가 구독할 때까지 Last Will이 유지되도록 정의됩니다.

 

16. Broker is MQTT v3.1.1 compliant?

 "브로커는 MQTT v3.1.1을 준수합니까?" 브로커가 MQTT v3.1.1 버전과 호환되는지 여부를 구분합니다.  

 

17. Auto connect on app launch?

이 옵션을 선택한 상태로 두면 프로그램이 시작될 때 클라이언트가 자동으로 브로커에 연결됩니다.

 

18. Queue outgoing QoS zero messages?

이 옵션을 활성화하면 클라이언트와 브로커 간의 연결이 중단되면 연결을 다시 설정할 때 품질 0의 대기열에 있는 모든 메시지가 게시됩니다.

 

19. Will - Payload

이 상자와 텍스트에서 연결이 끊긴 사례에 대한 Last Will을 정의합니다.

 

------------------------------------------------------------

'네트워크 정리 > 통신관련(MQTT,ssh,rosbridge)' 카테고리의 다른 글

gmqtt 예제 모음 저장  (0) 2022.09.02
gmqtt ( Retain Message, Clean Session and Qos Table )  (0) 2022.06.29
rosbridge  (0) 2022.05.01
gmqtt 설명  (1) 2022.04.25
MQTT(Mosquitto)  (0) 2022.04.19

댓글