네트워크/MQTT

MQTT(1) - mqtt에 대해 & publisher와 subscriber간의 메세지 주고 받기

위시리 2023. 3. 30. 00:46

(mqtt의 오픈소스인 mosquitto를 윈도우 환경에서 cmd를 사용하여 mqtt 실습 진행)

 

MQTT : message queue telemetry transport

- queue : 자료구조의 큐, 대기줄 같은거

- telemetry : 원격 조종

 

발행(publish) - 구독(subscribe) 기반의 메세지를 송수신하는 프로토콜이다.

작은 코드 공간이 필요하거나 네트워크 대역폭이 제한되는 원격 통신을 위해

IoT와 같이 제한된 혹은 대규모 트래픽 전송을 위해 만들어진 프로토콜이다.

 

발행자(publisher)가 메세지를 보낼 때 구독자(subscriber)가 바로 받지 않고 broker를 통해 메세지를 전달받는다는 특징이 있다.

그리고 이때 보내는 메세지를 구분짓는데 이를 Topic이라고 부른다.

 

 

mqtt를 실행하여 publish와 subscribe가 메세지를 주고 받는 간단한 실습을 진행해 보았다.

https://mosquitto.org/download/ 에서 mosquitto를 다운받았고,

 

우선 cmd 창에서 mosquitto가 깔려있는 페이지로 이동하였다.

깔면서 설치 경로를 임의로 바꾸지 않았다면 C:\Program Files\mosquitto에 깔려있을 것이다.

 

cd C:\Program Files\mosquitto

 

그 다음 브로커를 실행시킨다.

mosquitto –v

 

정상 작동되면 위와 같은 화면이 나온다
- 포트번호 : 1883
- ip를 version 4,6을 사용하는 것을 알 수 있다.
 
새로운 cmd창을 '관리자권한'으로 실행시켜
서비스를 시작한다.
 
net start mosquitto

 

 
해당 페이지에서 subscriber를 실행시킨다.

이때 mosquttio가 진행중이기 때문에 새로 실행할 필요는 없다.

 

mosquitto_sub -h localhost -t /testTopic

 

 
또 새로운 창을 관리자 권한으로 실행시켜
이 페이지에는 publisher를 실행시킨다.

mosquitto_pub –h 호스트 –t 토픽명 –m 메시지

 

mosquitto_pub –h localhost –t /testTopic –m “test message”

 

 
위와 같이 "test message"라는 메세지를 publisher가 보내면
subscriber화면에 다음과 같이 메세지가 전송되었음을 확인할 수 있다.
 

 

서비스 종료는 net stop mosquttio를 입력하면 되고
mosquttio에서 나가려면
ctrl+c 를 누르면 된다.