투케이2K

948. (Android/Java) [간단 소스] AWSIotMqttManager AWS MQTT clientToken 클라이언트 토큰 전송 방법 본문

Android

948. (Android/Java) [간단 소스] AWSIotMqttManager AWS MQTT clientToken 클라이언트 토큰 전송 방법

투케이2K 2025. 2. 14. 11:35

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Java / Kotlin

 

[소스 코드]

// --------------------------------------------------------------------------------------
[개발 및 테스트 환경]
// --------------------------------------------------------------------------------------

- 언어 : Java / Kotlin

- 개발 툴 : AndroidStudio

- 기술 구분 : AWSIotMqttManager / MQTT / clientToken

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[사전) Aws MQTT clientToken 설명]
// --------------------------------------------------------------------------------------

1. clientToken 은 AWS IoT의 Thing Shadow 업데이트 요청을 추적하는 데 사용됩니다

  >> clientToken은 요청을 보낸 후 응답을 식별하는 데 사용됩니다


2. clientToken 은 MQTT 3.1.1 버전 이하에서 주로 사용 되었으며, MQTT 5.0 이후 부터는 User Properties 속성을 주로 사용합니다

// --------------------------------------------------------------------------------------





// --------------------------------------------------------------------------------------
[clientToken 설정 샘플 소스 코드] : publish
// --------------------------------------------------------------------------------------

-----------------------------------------------
[clientToken을 포함한 MQTT 메시지 포맷]
-----------------------------------------------

{
  "state": {
    "desired": { // App To Device 요청
      "temperature": 25
    }
  },
  "clientToken": "unique-client-token-123"
}





-----------------------------------------------
[clientToken을 포함한 JSON 메시지 생성]
-----------------------------------------------

public String createPayloadWithClientToken() {

    try {

        JSONObject state = new JSONObject();
        JSONObject desired = new JSONObject();
        desired.put("temperature", 25);

        state.put("desired", desired); // App To Device 요청 의미 : desired

        JSONObject payload = new JSONObject();
        payload.put("state", state);
        payload.put("clientToken", "unique-client-token-123");

        return payload.toString();
    } catch (Exception e) {
        e.printStackTrace();
        return null;
    }
}

// --------------------------------------------------------------------------------------





// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------

https://aws-amplify.github.io/aws-sdk-android/docs/reference/com/amazonaws/mobileconnectors/iot/AWSIotMqttManager.html

https://aws-amplify.github.io/aws-sdk-android/docs/reference/com/amazonaws/mobileconnectors/iot/AWSIotMqttManager.html#updateUserMetaData-java.util.Map-

// --------------------------------------------------------------------------------------
 
반응형
Comments