네트워크/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 를 누르면 된다.