출처 : 모스키토
MQTT ( MQ Telemetry Transport )
Description
- MQTT 는 machine to machine ( M2M ) connectivity protocol.
- lightweight publish/subscribe message transport. ( small size, low power usage, minimized data packet, efficient distribution )
- android push notification 을 구축하기 좋다.
Publish / Subscribe
- message 를 publish 하고, topic 에 대해 subscribe 하는 방식 ( pub/sub )이다. 여러 client 는 broker 와 연결되어 있고, 관심있는 topic 을 구독한다.
Topics / Subscriptions
- topic 은 / ( slash ) 를 구분자로 hierarchy 를 구성한다.
- + 와 # 와일드 카드가 있다.
- + 는 single level hierarchy 에 적용된다.
- # 은 hierarchy의 나머지 level 에 적용된다.
Quality of Service
- 3가지 level 의 QoS 를 제공하는데, publish 와 subscribe QoS level 을 각각 설정할 수 있다.
- subscribe QoS level 은 publish QoS level 을 넘을 수 없는 한도에서, subscribe level 은 자유롭게 설정될 수 있다.
- 더 높은 숫자가 더 신뢰성 있는 QoS 이다. 하지만, 신뢰성 있는 QoS 일수록 더 긴 latency 와 더 넓은 bandwidth 를 요구한다.
* 0 : broker/client 가 메세지를 한번만 전송하며, confirmation 을 받지 않는다.
* 1 : broker/client 가 메세지를 한번만 전송하며, confirmation 을 받는다.
* 2 : broker/client 가 four step handshake 를 이용하여 정확하게 한번 보낸다.
Retained Messages
- 모든 메세지는 모든 subscriber 에게 전송했어도 서버에 남겨진다. 이는 나중에 새로운 subscriber 에게 전송될 수 있다. 만약 topic 에 대한 update 텀이 길다면, 새로운 구독자는 새로운 업데이트까지 아무 정보 없이 오래 기다려야 한다.
Clean session / Durable connections
- 연결할 때 client 는 "clean session" (clean start라고도 불린다. ) flag 를 설정할 수 있다. 만약 clean session 이 false 로 set 된다면, connection 은 durable 하게 취급된다. 이 말은 client 가 연결해제되면 QoS1 과 QoS2 구독 메세지들이 다시 접속할 때까지 그냥 남아있게 된다. 만약 clean session 이 true 라면 모든 구독 메세지들이 다시 접속할 때는 사라진다.
Wills
- client 가 broker 에 접속하면, 이것은 브로커에게 의지를 전달하는 것을 의미한다. 다시 말해, client 가 예상치 못하게 연결이 끊기더라도 메세지를 전달하려는 의지가 있었다고 전달하는 것이다. 이 will message 는 topic, QoS 를 가지고 있고, 다른 message 와 같이 취급된다.
'프로그래밍 놀이터 > Tips' 카테고리의 다른 글
[git] 무료 개인 git repository ( free private git 저장소 ) (2) | 2012.11.30 |
---|---|
GIF, Graphics Interchange Format 특징, 스펙, 포맷 (0) | 2012.11.14 |
Specification By Example. Introduction (0) | 2012.11.11 |
[git] Git Tutorial ( 기초 강좌 ) - 기본 사용 마스터. (0) | 2012.11.10 |
[git] Git Tutorial ( 중급 강좌 ) - 기본+ 사용. (0) | 2012.11.10 |
댓글