리눅스에서 MQTT 통신을 하기 위한 설정 방법 및 테스트 방법을 알아보도록 하겠습니다.
OS : Ubuntu-20.04.4
mosquitto version : mosquitto-1.4.10
websocket 연동하는 방식으로 진행하였습니다.
1. apt update & install
2. mosquitto 다운로드
3. config 파일 수정
4. make
5. websocket 설정
6. user 추가
7. 실행 테스트
1. apt update & install
$ sudo apt-get install
$ sudo apt-get update
$ sudo apt-get install libssl-dev
$ sudo apt-get install cmake
$ sudo apt-get install libc-ares-dev
2. mosquitto 다운로드
http://mosquitto.org/files/source/
위 링크에서 여러 버전을 확인할 수 있고 다운로드할 수 있습니다.
저는 mosquitto-1.4.10.tar.gz을 다운로드하여 사용하도록 하겠습니다.
파일 다운로드 후 원하는 경로로 이동시켜서 압축 풀어줍니다.
압축 풀기 명령어
$ tar zxvf mosquitto-1.4.10.tar.gz
3. config 파일 수정
폴더 내부에서 config.mk 파일을 수정합니다.
$ cd mosquitto-1.4.10
$ sudo gedit config.mk
편집기로 config.mk파일을 열어서 WITH_WEBSOCKETS 항목의 값을 수정합니다.
no를 yes로 변경합니다.
WITH_WEBSOCKETS:=no
↓
WITH_WEBSOCKETS:=yes
4. make
make 명령어를 사용하여 빌드합니다.
$ make
$ sudo make install
make 시 오류가 날 경우 오류 메시지 확인하고 apt install을 사용하여 필요한 패키지를 설치해줘야 합니다.
5. websocket 설정
config파일을 수정하겠습니다.
파일을 수정하기 위해 편집기를 열어보겠습니다.
$ sudo gedit mosquitto.conf
파일 내부에서 port 1883 항목을 찾습니다.
여기로 가서 아래 내용 추가합니다.
port 1883
listener 9090
protocol websockets
port, listener 항목을 각자 상황에 맞게 설정하시고 저장합니다.
6. user 추가
$ sudo adduser mosquitto
설정이 완료되면 재부팅하고 테스트를 해보도록 하겠습니다.
$ sudo reboot
or
$ sudo /usr/sbin/init 6
7. 실행 테스트
mosquitto를 실행해보도록 하겠습니다.
$ mosquitto -c /압축푼경로/mosquitto-1.4.10/mosquitto.conf
정상적으로 실행되었다면
websockets listen socket on port
ipv4 listen socket on port
ipv6 listen socket on port
위 항목이 표시됩니다.
※ mosquitto 실행 상태 확인하는 명령어
$ ps -ef | grep mosquitto
$ netstat -ano | grep LISTEN
mosquitto 실행시킨 상태로 두고 새로운 터미널 창을 2개 더 열어줍니다.
하나의 터미널 창에는 mosquitto_sub 명령어를 실행시킨 후 대기하고
또 다른 터미널에서 mosquitto_pub 명령어를 실행해서 정상적으로 통신이 되는지 확인해보겠습니다.
mosquitto_sub 예제 명령어
$ mosquitto_sub -h localhost -t testTopic
mosquitto_pub 예제 명령어
$ mosquitto_pub -h localhost -t testTopic -m "testMsg"
mosquitto_pub 명령어를 실행하였을 때
나머지 두 개의 터미널에서 메시지가 출력된다면 정상적으로 작동되고 있는 것입니다.
'IT, 개발 > 서버' 카테고리의 다른 글
라즈베리파이 USB 연결 및 파일 읽기 (리눅스 USB 마운트) (0) | 2022.05.16 |
---|---|
Ubuntu 서버에 명령어로 Tomcat 설치하기 (0) | 2022.04.19 |
Ubuntu - apt 패키지 삭제 (dpkg 사용) (0) | 2022.04.18 |
리눅스 PC - Wake on Lan 설정하기 (iptime 공유기 사용) (0) | 2022.03.31 |
이클립스(Eclipse)에서 FTP 연결(Remote System Explorer 사용법 / 카페24, FTP서버 등) (0) | 2022.02.08 |