본문 바로가기
카테고리 없음

[MQTT] MQTT 셋팅 방법

by eddypark 2024. 2. 21.

MQTT 구조

 

1. Broker 설치 ->mosquitto 설치 및 실행 (윈도우면C:\\Program Files\\mosquitto 가서 실행 )

apt-get install mosquitto 이 명령어로 설치하거나 [https://mosquitto.org/files/binary/win64/] 여기서 받으면됨
	mosquitto -v


2.  1883 포트가 사용중인지 아닌지 확인(실행 중 이면 kill)

netstat -ano


    - broker를 설치하는 서버에 포트가 열려있지 않다면 포트를 열어줘야 한다.
        - 방화벽 상태 확인 -> 고급 설정 -> 인바운드 규칙 -> 포트, TCP, 특정 로컬포트(1833) 옵션 선택


    - 열은 포트를 다시 한번 확인

netstat -ano


    - 만약 127.0.0.1로 포트가 열려있다면 포트 리스닝을 해주어야 한다.(bind address)

netsh interface portproxy add v4tov4 listenport=1833 listenaddress={address} connectport=1833 connectaddress=localhost

 

    해석: {address}:1833으로 들어온 요청을 localhost의 1833 포트로 연결해라.

3. 아래의 subscriber 실행 또는 해당 언어로 코드를 만들어 실행

mosquitto_sub -t test

or

import paho.mqtt.client as mqtt # subscriber callback 

def on_message(client, userdata, message): 
	print("message received ", str(message.payload.decode("utf-8"))) 
	print("message topic= ", message.topic) print("message qos=", message.qos) 
	print("message retain flag= ", message.retain) 

broker_address = "브로커 주소" 
client1 = mqtt.Client("client1") 
client1.connect(broker_address) 
client1.subscribe("토픽 이름") 
client1.on_message = on_message client1.loop_forever()



4. 아래의 publisher 실행 또는 해당 언어로 코드를 만들어 실행

mosquitto_pub -t test -m "Hello"

or

import paho.mqtt.client as mqtt 

mqttc = mqtt.Client("python_pub") # puclisher 이름 
mqttc.connect("브로커 주소", 1883) 
mqttc.publish("토픽 이름", "Hi") # topic, message