2017-10-06 7 views
2

데이터를 주기적으로 측정하는 모바일 장치의 전송 메커니즘으로 Amazon IoT를 조사하고 있습니다 (보통 N 분마다, N은 2 분에서 32 분 사이입니다). MQTT를 사용하면 Amazon의 브로커를 활용하여 QoS = 1 인 가입자에게 완성 된 측정 결과를 공개 할 수 있습니다. 내 독점 가입자가 와일드 카드 주제 (예 : abc/#)를 듣고 게시 된 메시지를 로컬 데이터베이스에 저장하는 또 다른 장치라고 가정 해 봅시다. 나는 공식 자바 SDK를 사용Aws IoT 메시지 전달

the publishing mobile devices have spotty/bad/no connection to the cell network, 
the subscriber dies (reboots, software failure, hardware failure, maintenance, etc.) 

가정 :

그러나 지금은 가능성도 있습니다. 적어도 두 사람 중 하나가 오프라인 일 때이 시간에 게시 된 데이터는 어떻게됩니까? 가입자가 다시 연결되면 누락 된 모든 메시지를 받게됩니까?

기타 : 해당 프로토콜에 따라 다릅니 까? 테스트 목적으로 WebSockets를 사용하고 있지만 나중에 개발/생산할 때는 SSL을 통한 MQTT를 선호합니다.

답변

1

적어도 중 하나가 오프라인 일 때이 시간에 게시 된 데이터는 어떻게됩니까? 구독자가 다시 연결했을 때 메시지가 누락되었습니다.

예, MQTT가 주제와 함게 게시자/등록자 구조를 사용하기 때문에 QoS 레벨 1 이상으로 MQTT를 사용하는 경우. QoS 레벨 1 이상을 가진 주제를 대상으로하는 메시지는 구독자가 가입 할 때까지 MQTT 서버가 메모리 및 디스크 (Atleast mosquitto)에 메시지를 갖습니다.

WebSocket이 다릅니다. 게시자/구독자 아키텍처가 없습니다. 단일 TCP 연결에서 이중 통신 모델입니다. WebSocket은 WebSocket 연결로 업데이트 될 HTTP 연결로 시작합니다. WebSocket의 경우 구독자와의 연결 문제가 발생할 때 어떤 일이 발생하는지 확인하는 것은 응용 프로그램의 책임입니다.