Network/IoT-MQTT

MQTT 브로커 Mosquitto 설치

양디 2016. 2. 14. 19:58



Broker


MQTT에서는 발행자와 구독자 사이에 브로커가 존재한다는 사실을 우리는 이미 안다.


이 브로커는 그 자체로 구독자이며, 발행자이기도 하다.


여러 프로그램들이 개발되었고, 배포되고 있으나 내가 사용할 프로그램은 Mosquitto이다.


모기가 여어로, mosquito 이다. t가 하나인데, MosQuiTTo 로 만들기 위해 의도적으로 t를 2개 쓴 것이 아닌가 싶다.


이런걸 보면 프로그래머들의 재치는 참, 대단하다.


브로커를 다운받고, 설치해보자.


모스키토 다운로드 페이지




위의 페이지에서 각자 운영 체제에 맞는 설치 파일을 받도록 하자.


윈도우의 경우, 실행하면 위와 같은 페이지가 뜬다.


두 링크르 따라 들어가서 필요한 파일들을 다운받자.


OpenSSL은 Light 버전을, pthreads는 pthreadVC2.dll 파일만 받으면 된다.


http://slproweb.com/products/Win32OpenSSL.html

ftp://sources.redhat.com/pub/pthreads-win32/dll-latest/dll/x86/


설치를 마쳤다면, OpenSSL도 설치해주어야 하는데,




위와 같이 설치해주어야 dll 파일을 찾기가 편하다.


그리고 다음 위치에서, 파일들을 모스키토 설치 폴더로 옮겨주면 된다.


C:\OpenSSL-Win32\bin (OpenSSL 설치폴더)에서 

ssleay32.dll / libeay32.dll 파일을 


C:\Program Files (x86)\mosquitto (Mosquitto 설치 폴더) 로 복사해준다.


또한 다운받은 pthreadVC2.dll 파일도 집어넣어주자.


그럼 설치는  끝났다.


실제로 한번 테스트를 해보자.


테스트


CMD 커맨드창을 통해서 모스키토를 사용할 수 있다.


브로커와 클라이언트 모두 사용할 수 있는데, 각각


브로커 : mosquitto

구독 : mosquitto_sub

발행 : mosquitto_pub

파일을 실행하면 할 수 있다.




위의 창은 Broker 창이다.


> mosquitto -v


위의 명령어로 실행할 수 있는데, -v 는 verbose로, 프로그램이 실행되는 모든 것을 보여달라는 뜻이다.

-v를 실행하지 않으면 브로커는 아무 내용도 보여주지 않고 전달해주는 역할만 한다.


위의 내용들을 보면, 1883 포트로 소켓을 열었고, ::1 (IPv6에서 루프백 아이피) 에서 새로운 연결이 시도되었다.

연결이 성공되어서 CONNACK을 보내주었고, 해당 클라이언트는 Subscribe 메시지를 보냈다.

즉 한 클라이언트가 연결을 성공하여 /test 라는 토픽을 구독하기 시작하였다.


그 아래는 발행을 하는 것이다. 




위의 사진은 sub / pub의 사진이다.


위의 사진은 sub, 아래 사진은 pub이다.


공통적으로 사용되는 옵션은 


-h <호스트> -t <토픽> 이다.


현재 내 아이피에서 브로커가 실행중이므로, 호스트는 localhost이고, topic은 테스트를 위하여 /test를 사용하였다.


pub는 이름에서 알 수 있듯이 Publish를 위한 프로그램이며, /test의 토픽에 

-m <메시지> 옵션을 통해서 Hello DalkomIT World 라는 메시지를 보냈다.

보내는 것에 성공해서 위의 sub 창에 해당 메시지가 도착한 것을 볼 수 있다.





댓글