TIL#13 MQTT (mosquitto)

tgrf07·2021년 5월 11일
0
post-thumbnail

MQTT?

MQTT(Message Queue Telemetry Transport)란 사물통신(ioT) 사물 간의 통신(Machine to Machine) 실시간 라이브방송? 혹은 실시간기능을 이용 할수 있게 하는 간단한 메세지 전송용 프로토콜이다.

  • 일반 HTTP 통신 과는 달리 pub(발행자)/sub(구독자) 한번에 많은 client와 양방향으로 통신이 가능하다.
  • ioT는 사용하던 ioT중 장비의 ip가 바뀌어도 문제없이 사용이 가능하다.

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구조와 비슷

  • Subscribe(sub) : topic을 구독하여 topic으로 발행된 정보를 받는다.

MQTT 프로그램중 mosqitto 일명 모기라는 프로그램을 이용해 테스트 해보려고함 왜냐하면 무료니까~!

mosqitto

1.설치

brew install mosquitto //설치명령어

2.프로그램 실행

실행 명령어

brew services start mosquitto

같은 실행 명령어 지만 아래 명령어로 실행시 port번호 확인가능

/usr/local/sbin/mosquitto -c /usr/local/etc/mosquitto/mosquitto.conf 

포트가 사용 중 이라는 에러가 나오면

lsof -i :포트번호 (사용중인 port 번호찾기) 확인 후 listen 상태

kill -9 포트번호 (사용중인 port 종료하기) 확인 후 종료

3. pub/sub 설정

터미널 창을 총 세개 띄운다 mosquitto 실행1, sub1(구독), pub1(발행)

  1. sub(구독설정)
mosquitto_sub -h 호스트Ip(192.0.0.111) -t 토픽/상태(camera1/data1)

로컬에서 테스트시 -h 호스트는 안적어줘도 가능함

  1. pub(발행설정)
mosquitto_pub -t 토픽/상태(camera/data1) -m (메세지내용)

설정하고 메세지내용에 작성하면 sub구독 중인 터미널에 메세지 내용을 확인 할수 있다.

참고한 강의 : https://youtu.be/p_T5G1hJ35g
참고한 링크 : https://gist.github.com/KazChe/6bcafbaf29e10a7f309d3ca2e2a0f706

0개의 댓글