Un messaggio SUBACK è inviato dal broker al client per confermare la ricezione di un messaggio SUBSCRIBE.
Un messaggio SUBACK contiene un elenco di livelli QoS garantito. Questi sono i livelli a cui gli amministratori del broker consentono al client di effettuare la sottoscrizione ad un nome argomento specifico. Nella versione del protocollo attuale, il broker garantisce sempre il livello QoS richiesto dal sottoscrittore. L'ordine dei livelli QoS garantiti nel messaggio SUBACK corrisponde all'ordine dei nomi argomento nel messaggio SUBSCRIBE corrispondente.
La seguente tabella mostra il formato dell'intestazione fissa.
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|
byte 1 | Tipo messaggio (9) | Indicatore DUP | Livello QoS | RETAIN | ||||
1 | 0 | 0 | 1 | x | x | x | x | |
byte 2 | Lunghezza rimanente |
L'intestazione variabile contiene l'ID messaggio per il messaggio SUBSCRIBE per cui è stata inviata conferma. La seguente tabella mostra il formato dell'intestazione variabile.
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|
byte 1 | MSB ID messaggio | |||||||
byte 2 | LSB ID messaggio |
Il payload contiene un vettore dei livelli QoS garantiti. Ogni livello corrisponde ad un nome argomento nel messaggio SUBSCRIBE corrispondente. L'ordine dei livelli QoS nel messaggio SUBACK corrisponde all'ordine delle coppie nome argomento e QoS richiesto nel messaggio SUBSCRIBE. L'ID messaggio nell'intestazione variabile consente di mettere in corrispondenza i messaggi SUBACK con i messaggi SUBSCRIBE.
La seguente tabella mostra il campo QoS garantito codificato in un byte.
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|
Riservato | Riservato | Riservato | Riservato | Riservato | Riservato | Livello QoS | ||
x | x | x | x | x | x |
I 6 bit superiori di questo byte non sono utilizzati nella versione corrente del protocollo. Sono riservati ad un utilizzo futuro.
La seguente tabella mostra un esempio di payload.
QoS garantito | 0 |
QoS garantito | 2 |
La seguente tabella mostra il formato di questo payload.
Descrizione | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
---|---|---|---|---|---|---|---|---|---|
QoS richiesto | |||||||||
byte 1 | QoS garantito (0) | x | x | x | x | x | x | 0 | 0 |
QoS garantito | |||||||||
byte 2 | QoS garantito (2) | x | x | x | x | x | x | 1 | 0 |