2017-03-22 4 views
1

IoT 프로젝트로 놀고 있는데, 지금까지 그렇게 좋았습니다. 웹상에서 발견 된 무료 중개인을 사용하여 클라이언트간에 데이터를 공유 할 수 있습니다 ...브로커의 메시지가 타임 스탬프되지 않았습니까?

내 사례는 msg를 게시하는 온도 센서에 관한 사례입니다 주제 룸/온도 msg 대화명이 유지되기 때문에

하는 client_2이 후자오고을 유지하여, 그 주제에 가입을하고 client_1가 얼마 전에 발표하는 온도의 마지막 값을 얻을 . 내 질문에 이제

:

내가 Client_2가 그 메시지를 발행 할 때, 나는 나중에 그 정보를 얻고 (초)을 알고 싶습니다 의미 aswell 가도록해야합니다 ..

내가 항아리로 콜백에서 PAHO - Eclipse를 사용 here

messageArrived(java.lang.String topic, MqttMessage message) 

에 대해 아무것도 아니다 0

왜? 어떻게하면됩니까?

감사합니다. :)

답변

1

MQTT는 고의로 가벼운 프로토콜이므로 메시지 헤더에 불필요한 정보가 없습니다.

타임 스탬프는 메시지를 전달할 때 필수 필드가 아니므로 포함되지 않습니다.

타임 스탬프를 포함 시키려면 메시지 페이로드로 직접 인코딩해야합니다.

+0

을 내가 페이로드에 타임 스탬프 값을 추가 생각하는 구멍을 변경하지 않을 *** 경량 *** 개념 ... –

+0

타임 스탬프가 보통 32 비트 (4 바이트)를 필요로하고 MQTT 헤더가 공개 메시지의 경우 7 바이트만큼 작을 수 있으므로 매우 중요합니다 – hardillb

1

온도 센서 데이터를 JSON 데이터 또는 XML 또는 일반 텍스트로 보내시겠습니까? 당신이 JSON을 사용하는 경우

당신이 할 수있는 :

{"ts":1451649600512, "values":{"key1":"value1", "key2":"value2"}} 

또는 XML을, 당신은 할 수 :

<?xml version="1.0" encoding="UTF-8"?> 
<Temperature> 
    <TS>1451649600512</TS> 
    <Values> 
    <key1>value1</key1> 
    <key2>value2</key2> 
    </Values> 
</Temperature> 
+0

일반 텍스트 ... 11.5 또는 -2.4와 같이 값만 실제로 전송합니다. –