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