MQTT에 관심을 가지는 이유는 (저전력/소규모)디바이스와 IoT 인프라간의 통신 프로토콜로의 가능성 때문이다. IoT 인프라는 소규모 디바이스 뿐만 아니라 PC, 타블렛, 모바일 기기와 같은 비교적 강력한 디바이스가 붙을 수 있다. 온갖 종류의 디바이스들과 애플리케이션들이 혼재한 공간이다. 현재 이 공간을 묶어주기 위해서 가장 일반적으로 사용하는 도구들은
HTTP, HTML, Javascript이다. 인터넷은 IoT의 한축이다. IoT 인프라 개발자로서 [MQTT와 인터넷(웹)을 묶는걸 고민할 수 밖에 없다.
내가 생각하는 MQTT와 웹과의 연동방식은 다음과 같다.
- HTTP : 입력과 출력을 분리 할 경우, 입력은 HTTP로 보낼 수 있다. 채팅 서비스를 예로 들자면, 메시지 입력은 HTTP 로 보 내고 응답은 MQTT로 받는 식이다.
- WebSocket : HTTP 기반의 애플리케이션을 위해서, MQTT 앞단에 websocket을 둔다.
- JavaScript› : Javascript의 MQTT 라이브러리를 이용해서 직접 MQTT기반 통신을 할 수 있다.
모바일 기기의 타입에 따라서 다양한 조합이 가능 할 것이다. HTTP + WebSocket, HTTP + Javascript, HTTP + MQTT Client(아마 하이브리드 앱이 될 것이다.), 입출력 모두에 MQTT를 이용하는 전용 앱등의 다양한 조합이 가능하다.
내가 관심을 가지고 있는 조합은 HTTP+WebSocket, HTTP+Javascript 조합으로, 이 두가지 모두를 테스트할 계획이다.