Uma mensagem SUBACK é enviada pelo intermediário para o cliente para confirmar o recebimento de uma mensagem SUBSCRIBE.
Uma mensagem SUBACK contém uma lista de níveis de QoS concedidos. Esses são os níveis nos quais os administradores do intermediário permitem que o cliente faça uma assinatura em um nome de tópico específico. Na versão atual do protocolo, o intermediário sempre concede o nível de QoS solicitado pelo assinante. A ordem de níveis de QoS concedidos na mensagem SUBACK corresponde à ordem do tópico Nnames na mensagem SUBSCRIBE correspondente.
A tabela abaixo mostra o formato do cabeçalho fixo.
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|
byte 1 | Tipo de Mensagem (9) | Sinalizador DUP | Nível de QoS | RETAIN | ||||
1 | 0 | 0 | 1 | x | x | x | x | |
byte 2 | Comprimento Restante |
O cabeçalho variável contém o ID da Mensagem para a mensagem SUBSCRIBE da qual está sendo confirmado o recebimento. A tabela abaixo mostra o formato do cabeçalho variável.
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|
byte 1 | ID da Mensagem MSB | |||||||
byte 2 | ID da Mensagem LSB |
A carga útil contém um vetor de níveis de QoS concedidos. Cada nível corresponde a um nome de tópico na mensagem SUBSCRIBE correspondente. A ordem de níveis de QoS na mensagem SUBACK corresponde à ordem dos pares nome do tópico e QoS Solicitado na mensagem SUBSCRIBE. O ID da Mensagem no cabeçalho variável permite corresponder mensagens SUBACK com as mensagens SUBSCRIBE correspondentes.
A tabela abaixo mostra o campo QoS Concedido codificado em um byte.
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|
Reservado | Reservado | Reservado | Reservado | Reservado | Reservado | Nível de QoS | ||
x | x | x | x | x | x |
Os 6 bits superiores deste byte não são utilizados na versão atual do protocolo. Eles estão reservados para utilização futura.
A tabela mostra uma carga útil de exemplo.
QoS Concedido | 0 |
QoS Concedido | 2 |
A tabela abaixo mostra o formato desta carga útil.
Descrição | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
---|---|---|---|---|---|---|---|---|---|
QoS Solicitado | |||||||||
byte 1 | QoS Concedido (0) | x | x | x | x | x | x | 0 | 0 |
QoS Concedido | |||||||||
byte 2 | QoS Concedido (2) | x | x | x | x | x | x | 1 | 0 |