SUBACK 메시지는 SUBSCRIBE 메시지 수신을 확인하기 위해 브로커가 클라이언트로 송신합니다.
SUBACK 메시지에는 부여된 QoS 레벨의 목록이 들어 있습니다. 이 목록은 브로커의 관리자가 클라이언트로 하여금 특정 토픽 이름을 subscribe할 수 있게 하는 레벨입니다. 현재 프로토콜 버전에서, 브로커는 항상 subscriber가 요청한 QoS 레벨을 부여합니다. SUBACK 메시지에서 부여된 QoS 레벨의 순서는 해당 SUBSCRIBE 메시지의 토픽 Nnames의 순서와 일치합니다.
다음 표에서는 고정된 헤더의 형식을 보여줍니다.
비트 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|
바이트 1 | 메시지 유형 (9) | DUP 플래그 | QoS 레벨 | RETAIN | ||||
1 | 0 | 0 | 1 | x | x | x | x | |
바이트 2 | 나머지 길이 |
가변 헤더에는 수신확인 중인 SUBSCRIBE 메시지의 메시지 ID가 들어 있습니다. 다음 표에서는 가변 헤더의 형식을 보여줍니다.
비트 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|
바이트 1 | 메시지 ID MSB | |||||||
바이트 2 | 메시지 ID LSB |
페이로드(payload)에 부여된 QoS 레벨의 벡터가 들어 있습니다. 각 레벨은 해당 SUBSCRIBE 메시지의 토픽 이름과 대응됩니다. SUBACK 메시지의 QoS 레벨 순서는 SUBSCRIBE 메시지의 토픽 이름 및 요청된 QoS 쌍의 순서와 일치합니다. 가변 헤더의 메시지 ID를 사용하여 해당하는 SUBSCRIBE 메시지와 SUBACK 메시지를 대조할 수 있습니다.
다음 표에서는 바이트로 인코딩된 부여된 QoS 필드를 보여줍니다.
비트 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|
예약됨 | 예약됨 | 예약됨 | 예약됨 | 예약됨 | 예약됨 | QoS 레벨 | ||
x | x | x | x | x | x |
이 바이트의 상위 6비트는 현재 프로토콜 버전에서 사용되지 않습니다. 나중에 사용하기 위해 예약되어 있습니다.
다음 표에서는 페이로드(payload)의 예를 보여줍니다.
부여된 QoS | 0 |
부여된 QoS | 2 |
다음 표에서는 이 페이로드(payload)의 형식을 보여줍니다.
설명 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
---|---|---|---|---|---|---|---|---|---|
요청된 QoS | |||||||||
바이트 1 | 부여된 QoS (0) | x | x | x | x | x | x | 0 | 0 |
부여된 QoS | |||||||||
바이트 2 | 부여된 QoS (2) | x | x | x | x | x | x | 1 | 0 |