프로그래밍/etc

mosquitto "Connection error: Connection Refused: identifier rejected." 오류

인썸니아 2024. 2. 21. 14:13

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