MQTT(Message Queue Telemetry Transport)란 사물통신(ioT) 사물 간의 통신(Machine to Machine) 실시간 라이브방송? 혹은 실시간기능을 이용 할수 있게 하는 간단한 메세지 전송용 프로토콜이다.
By Simon A. Eugster - 자작, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=70622928
Broker : Server와 Client 사이에 Broker가 존재하는데 Client들은 이 Broker 와 통신을 하게된다. 말그대로 서버와 클라이언트 사이의 중개자 역할
Publish(pub) : topic을 지정하여 topic을 sub(구독)하고 있는 클라이언트에게 정보를 보낸다.
*topic - ex) camera1/data1 1번카메라의 데이터1번 웹개발을 한다면 url구조와 비슷
MQTT 프로그램중 mosqitto 일명 모기라는 프로그램을 이용해 테스트 해보려고함 왜냐하면 무료니까~!
brew install mosquitto //설치명령어
실행 명령어
brew services start mosquitto
같은 실행 명령어 지만 아래 명령어로 실행시 port번호 확인가능
/usr/local/sbin/mosquitto -c /usr/local/etc/mosquitto/mosquitto.conf
포트가 사용 중 이라는 에러가 나오면
lsof -i :포트번호 (사용중인 port 번호찾기) 확인 후 listen 상태
kill -9 포트번호 (사용중인 port 종료하기) 확인 후 종료
터미널 창을 총 세개 띄운다 mosquitto 실행1, sub1(구독), pub1(발행)
mosquitto_sub -h 호스트Ip(192.0.0.111) -t 토픽/상태(camera1/data1)
로컬에서 테스트시 -h 호스트는 안적어줘도 가능함
mosquitto_pub -t 토픽/상태(camera/data1) -m (메세지내용)
설정하고 메세지내용에 작성하면 sub구독 중인 터미널에 메세지 내용을 확인 할수 있다.
참고한 강의 : https://youtu.be/p_T5G1hJ35g
참고한 링크 : https://gist.github.com/KazChe/6bcafbaf29e10a7f309d3ca2e2a0f706