티스토리 뷰

개요

  • Eclipse MosquittoMQTT 5 프로토콜을 지원하는 경량의 오픈 소스 MQTT Broker이다. 이번 글에서는 Eclipse Mosquitto을 실행하고, MQTT X를 이용하여 특정 Topic을 구독하고 발행하는 예제를 소개하고자 한다.

준비물

  • docker, docker-compose: Eclipse Mosquitto을 도커 컨테이너로 실행하기 위해 필요하다. CentOS에서의 설치 방법은 본 블로그의 이 글을 참고한다.
  • MQTT X: 크로스 플랫폼을 지원하는 무료 오픈 소스 MQTT 데스크탑 클라이언트이다. 3.3.15.0을 모두 지원한다. 여기를 클릭하여 설치한다.

Eclipse Mosquitto 설치 및 실행

  • docker-compose를 이용하여 아래와 같이 docker-compose.yml 파일을 작성한다.
$ mkdir eclipse-mosquitto

$ cd eclipse-mosquitto

$ nano docker-compose.yml
version: '3.8'
services:
  mosquitto:
    image: "eclipse-mosquitto"
    ports:
      - "1883:1883"
      - "9001:9001"
    volumes:
      - ./config/mosquitto.conf:/mosquitto/config/mosquitto.conf
      - ./data:/mosquitto/data
      - ./log:/mosquitto/log
    restart: always
  • Eclipse Mosquitto 실행에 필요한 디렉토리 및 설정 파일을 생성한다.
$ mkdir config

$ mkdir data

$ mkdir log

# 환경 설정 파일 작성
# 자동 개행 방식을 CR+LF가 아니라 LF로 저장해야 오류가 발생하지 않음
$ nano ./config/mosquitto.conf
persistence false
allow_anonymous true
connection_messages true
log_type all
listener 1883
  • 모든 설정이 완료되었다. 아래와 같이 Eclipse Mosquitto를 실행한다.
# Eclipse Mosquitto 실행
$ docker-compose up
mosquitto_1  | 1634820280: mosquitto version 2.0.12 running

MQTT X를 이용한 메시지 전송 테스트

  • 앞서 언급한 MQTT X를 이용하면 카카오톡 또는 텔레 이용하는 느낌으로
  • 앞서 설치한 MQTT X를 실행하여 실행 중인 MQTT 브로커에 클라이언트로 연결한다.
MQTT X 실행
→ [+] 클릭
→ Host: mqtt://127.0.0.1 (입력)
→ Port: 1883 (입력)
→ [Connect] 클릭
  • 연결이 완료되면 + New Subscription을 클릭하여 새로운 Topic을 구독할 수 있다. (한 번도 등록된 적이 없는 Topic을 구독할 경우 해당 토픽이 브로커에서 자동으로 생성된다.) 예시로 아래와 같은 Topic을 구독해보자.
Topic:
    /home/light/1
  • 이번에는 앞서 생성한 Topic에 대해 Payload를 전송해보자. Publish된 메시지와 Subscribe된 메시지를 동시에 확인할 수 있다.
Topic:
    /home/light/1

Payload Type:
    Plaintext

Payload:
    on

Production-Ready를 위한 추가 고려 사항

  • TLS 설정이 적용되지 않으면 브로커로 전송되는 모든 메시지를 중간에서 가로 채서 확인할 수 있다. (SSL 인증서를 설치하여 해결할 수 있다.)
  • usernamepassword를 적용하여 인증된 클라이언트만 연결이 가능하도록 통제할 수 있다. 이 경우 allow_anonymous 값을 false로 변경하고, /etc/mosquitto/passwd 파일을 생성해야 한다.

참고 글

댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함