Mac) MQTT mosquitto 설치 & 테스트

준영·2023년 1월 4일
2

이것저것..

목록 보기
5/15
post-custom-banner

📌 mosquitto란?

📗 그 전에, MQTT란..

모스키토는 MQ Telemetry Trasport 프로토콜 버전 3.1 과 3.1.1 을 구현한 오픈소스 메세지브로커이다. MQTT 는 생산자/소비자 모델을 사용한 메세지 이동에 관한 가벼운 메소드를 제공한다. 이것은 저전력 파워센서 나 모바일 디바이스 , 임베디드 컴퓨터나 아두이노 마이크로 컨트롤러 같은 "디바이스 to 디바이스 " 간의 메세징을 처리하기에 적합하다.

Broker(브로커)란?

Publish와 Subscriber 사이에 메세지를 관리하여 전송해주는 중앙 관리자이다.


📌 mosquitto 설치 및 실행

⚙️ 설치

brew install mosquitto

⚙️ 실행

brew services start mosquitto

⚙️ 중지

brew services stop mosquitto

⚙️ 재실행

brew services restart mosquitto

⚙️ 비서비스 시작

/opt/homebrew/opt/mosquitto/sbin/mosquitto -c /opt/homebrew/etc/mosquitto/mosquitto.conf
  • mosquitto가 설치된 경로에 따라 다르니 주의하자!!
  • 위의 비서비스 명령어를 사용하면 brew services start mosquitto을 따로 명령 할 필요가 없다.

📍 mosquitto 테스트

터미널 창을 3개를 열고, 각각 브로커, 구독, 발행의 역할을 맡기로 했다.

1️⃣ 브로커 서비스를 실행

앞의 비서비스 시작 명령어를 통하여 브로커를 실행해주자

2️⃣ 해당 브로커의 임의의 토픽을 구독하자

👇 mosquitto_sub -h [주소] -p [포트] -t [주제, 방제목]

/opt/homebrew/Cellar/mosquitto/2.0.15/bin/mosquitto_sub -h localhost -p 1883 -t every

3️⃣ 해당 브로커에 생성한 토픽에 메세지를 발행하자

👇 mosquitto_pub -h [주소] -p [포트] -t [주제, 방제목] -m [메세지]

 ⇒ /opt/homebrew/Cellar/mosquitto/2.0.15/bin/mosquitto_pub -h localhost -p 1883 -t every -m "테스트 메세지”

4️⃣ 구독했던 터미널을 확인하면..

every 토픽을 구독하는 터미널에서, every 토픽으로 발행한 메세지를 받을 수 있다.


📍 프론트(웹)와 통신하기 위한 몇가지 세팅..

웹에서 통신을 하려면 웹소켓을 이용하여 mqtt서버에 접근해야한다.
하지만 mosquitto의 경우에는 다이렉트로 mqtt와 통신을 하는 것이 디폴트이기 때문에, 몇가지 세팅을 해줘야 한다.

  • 외부 기기에서 원격 접속이 가능하도록 하기 위해서는 Mosquitto 설치 디렉토리에 있는 mosquitto.conf 파일의 내용을 다음과 같이 수정하여야 한다.

mosquitto가 설치된 경로에서 mosquitto.conf파일을 열어 몇가지를 적어야 한다.

1️⃣ 파일을 열어서 맨 하단에 아래와 같이 입력해주자

listener 9001
protocol websockets

#mqtt
listener 1883
protocol mqtt

2️⃣ allow_anonymous를 찾아서 true 값을 주자

#allow_anonymous 이런식으로 써져 있을텐데, 주석처리를 지우고 allow_anonymous true로 입력해주자

  • true로 설정하면 아무나 브로커 서버에 접근이 가능하다.
    하지만 false 설정하면 아무나 브로커 서버에 접근이 불가능하다.


이제 mosquitto를 활용하여, MQTT를 사용한 간단한 채팅앱을 만들어 보자!

profile
개인 이력, 포폴 관리 및 기술 블로그 사이트 👉 https://aimzero-web.vercel.app/
post-custom-banner

0개의 댓글