MQTT 테스트를 위한 환경은 다음과 같았다.
- broker를 위해 안드로이드 폰에 MQTT Broker 앱 설치 (ip: 192.168.0.139)
- 윈도우PC 에서 subscribe. 이를 위해 mosquitto 설치
- 우분투 서버에서 publish
MQTT broker 안드로이드 앱
MQTT Broker - Google Play 앱
MQTT는 매우 가벼운 발행 / 구독 메시징 전송 프로토콜입니다.
play.google.com
mosquitto download
Download
Source mosquitto-2.0.18.tar.gz (GPG signature) Git source code repository (github.com) Older downloads are available at https://mosquitto.org/files/ Binary Installation The binary packages listed be
mosquitto.org
환경 설정 후 윈도우PC에서 subscribe을 실행하였더니 아래와 같은 오류로 동작하지 않았다.
C:\Program Files\mosquitto>mosquitto_sub -h 192.168.0.139 -t "TEST"
Connection error: Connection Refused: identifier rejected.
192.168.0.139 ip의 안드로이드 폰에 broker를 띄운 상태였고, 윈도우PC에서 안드로이드 폰으로 ping 은 가고 있었다.
구글링을 통해 mosquitto.conf 파일에서 아래와 같이 설정을 추가해 보았으나 효과가 없었다.
listener 1883
allow_anonymous true
방화벽이 문제인가 싶어 윈도우 방화벽 설정에서 방화벽을 꺼 보기도 하고, 1883 포트 연결을 허용하는 인바운드/아웃바운드 규칙을 추가해 보기도 하였으나 효과가 없었다.
그렇게 계속 구글링을 하다가, 찾은 방법은 바로 clientID 설정이었다.
아래와 같이 clientID를 설정하고 실행하면 정상적으로 동작한다.
id는 임의의 값으로 입력 가능하다.
mosquitto_sub -h 192.168.0.139 -p 1883 -t "TEST" -i 12345
저렇게 subscribe 하고 우분투 서버에서 publish 하여 메시지가 들어오는 것을 확인하였다.
윈도우PC가 아니라 우분투PC에서 subscribe 할때는 id 설정없이 가능한 것으로 보아, 윈도우PC에서도 mosquitto.conf 에서 뭔가 설정하면 입력없이 default값을 사용하게 할 수 있을거 같긴 한데,,
찾아보기 귀찮다. ㅋ
'프로그래밍 > etc' 카테고리의 다른 글
[C++] simple IPC, pthread example for ubuntu (0) | 2024.07.18 |
---|---|
맥 잠자기 방지 cmd (0) | 2024.05.05 |
Mac 주요 단축키 모음 (0) | 2023.11.25 |
nvidia GPU 정보 확인 (ubuntu) (1) | 2023.07.06 |
Desmos Graphing Calculator (0) | 2023.06.21 |