mqtt에 대해서. > IoT

IoT

mqtt에 대해서. 정보

mqtt에 대해서.

본문

mqtt는 임베디드 기기같이 저전력, 저성능에 적합한 메시징 프로토콜입니다.

말이 어렵지 그냥 중계서버입니다. 단지 헤더를 좀 줄이고 IOT 개발을 쉽게 할 수 있도록 몇가지 틀을 잡아놓았을 뿐입니다.

 

                                      <-> IOT 기기1 (192.168.0.1) 

                                      <-> IOT 기기2 (192.168.0.2)

나의 스마트폰 <-> mqtt 중계서버 <-> IOT 기기3 (192.168.0.3)

                                      <-> IOT 기기4 (192.168.0.4)

                                      <-> IOT 기기5 (192.168.0.5) 

 

이런식의 구조입니다.

여기서 mqtt 중계서버는 각 가정에 하나씩 필요합니다.

mqtt 서버를 서비스 제공업체에가 가지고 있으면 세팅은 편리하지만 보안에 좋지 않습니다.

 

IOT 기기에는 와이파이 모듈과 아두이노같이 프로세서가 있을겁니다.

각 IOT기기는 공유기의 와이파이와 연결되어 각자 사설IP로 연결됩니다.

 

mqtt 중계서버도 공유기의 와이파이와 연결되고 사설IP가 부여됩니다.

그런데 mqtt중계서버는 외부에서 접근이 가능해야 하므로 공유기의 포트포워딩을 해 줍니다.

 

원리는 이겁니다.

 

1. IOT 기기가 mqtt queue에 메시징(주방에 창문이 열렸습니다!)을 보냅니다.

2. 이렇게 되면 mqtt 중계서버는 자신과 연결된 클라이언트(나의 스마트폰)에게 이 메세지를 푸시하려고 할껍니다.

3. 나의 스마트폰에는 mqtt 중계서버와 통신 할 수 있도록 만들어진 앱이 깔려 있습니다. 그리고 앱이 꺼져 있어도 작동 하도로 백그라운드에서 스레드가 돌고 있겠죠.

4. 제가 볼땐 폴링 방식은 아니고 소켓방식이라 보여집니다.

5. 그럼 mqtt 중계서버가 나의 스마트폰으로 push를 하면 스마트폰에 "주방에 창문이 열렸습니다!"라고 푸시가 오겠죠.

 

제가 이해한게 틀릴 수도 있는데 이 방식 말고는 딱히 떠오르지가 않네요.

추천
1

댓글 8개

3. 나의 스마트폰에는 mqtt 중계서버와 통신 할 수 있도록 만들어진 앱이 깔려 있습니다. 그리고 앱이 꺼져 있어도 작동 하도로 백그라운드에서 스레드가 돌고 있겠죠.
> 이부분은 메시지를 보내기 위한 백그라운드 프로세스인가요?
> GCM이나 APN을 사용할경우 굳이 앱자체를 백그라운드로 돌릴 필요가 없지 않을 까요?
말씀대로 gcm을 사용해도 되긴 합니다.
단지 푸시서버를 한번 만들어 보고 싶을 뿐입니다. ㅎㅎ

그렇네요.

굳이 앱자체를 백그라운드로 돌릴필요까진 없고.
앱에 gcm 리시버 생성 후 indent로 띄워 주면 되겠네요.

어차피 안드로이드에서 gcm을 처리하는 쓰레드가 항상 돌고 있을테니까 말이죠.
푸시서버!
저도 도전 해보려다가 실패 한게 항상 서버와 통신 상태를 유지 해야 한다는 점이라서... 사용자에게 과도한 트래픽(=돈)을 요구 하게 되더라구요.

실제 SK에서 자체 푸시 서버를 만들려고 하였으나 위 이유와 같은 이유로 포기 했다는 소문을 들었습니다.
SK처럼 엄청난 클라이언트를 상대해야 하는 회사는 gcm 쓰는게 훨씬 이득일겁니다. ㅋㅋ
IOT 같은 경우는 대게가 1:1 인 경우가 많으니까요. ㅎㅎ

오늘은 날씨가 좋네요.
메시지를 받기 위한 프로세서가 아닐까요?
GCM이나 APN도 스마트폰에서 메시지를 받기 위한 스레드가 돌고 있기 때문에, 백그라운드 돌지 않고 메시지를 받는 방식은 이벤트기반 명령 수신 방식에서는 구현 불가합니다.
mqtt = GCM 이 랄까?
페이스북에서는 mqtt로 채팅을 구현했다고하니, 아마도 큰틀에서는 같은 방식이 아닐까요?
예 3번에 대한 스레드는 메시지를 받기 위한 프로세서입니다.

단지 폴링이냐, 소켓이냐 그 차이인 것 같습니다.

그리고 메시지를 보낼 때도 비동기로 보내 줘야 하죠.
스마트 허브를 두느냐(삼성 등)  스마트 허브를 안두고 하느냐 (벨킨 Wemo)로 나눠질 것 같은데,  시큐리티 문제는 어느것으로 가도, 해결해야 되는 문제인것 같습니다.
전체 7 |RSS
IoT 내용 검색

회원로그인

진행중 포인트경매

  1. 참여4 회 시작24.04.25 20:23 종료24.05.02 20:23
(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT