CONNECT - Il client richiede una connessione a un broker

Quando si stabilisce una connessione socket TCP/IP tra il client e il broker, è richiesta una sessione a livello di protocollo. Si presuppone che la direzione della connessione sia dal client al broker e che il client supporti la funzionalità listener del broker.

Intestazione fissa

Il formato dell'intestazione fissa è mostrato nella seguente tabella.

bit 7 6 5 4 3 2 1 0
byte 1 Tipo messaggio (1) Indicatore DUP Livello QoS RETAIN
  0 0 0 1 x x x x
byte 2 Lunghezza rimanente

Gli indicatori DUP, QoS e RETAIN non sono utilizzati nel messaggio CONNECT.

La Lunghezza rimanente è la lunghezza dell'intestazione variabile (12 byte) e la lunghezza del Payload. Questo può essere un campo a più byte.

Intestazione variabile

Nella tabella di seguito viene mostrato un esempio del formato dell'intestazione variabile.

  Descrizione 7 6 5 4 3 2 1 0
Nome protocollo
byte 1 MSB della lunghezza (0) 0 0 0 0 0 0 0 0
byte 2 LSB della lunghezza (6) 0 0 0 0 0 1 1 0
byte 3 'M' 0 1 0 0 1 1 0 1
byte 4 'Q' 0 1 0 1 0 0 0 1
byte 5 'I' 0 1 0 0 1 0 0 1
byte 6 's' 0 1 1 1 0 0 1 1
byte 7 'd' 0 1 1 0 0 1 0 0
byte 8 'p' 0 1 1 1 0 0 0 0
Numero versione protocollo
byte 9 Versione (3) 0 0 0 0 0 0 1 1
Indicatori Connect
byte 10

RETAIN Will (0)
QoS Will (01)
Indicatore Will (1)
Clean Start (1)

x x 0 0 1 1 1 x
Timer Keep Alive
byte 11 MSB Keep Alive (0) 0 0 0 0 0 0 0 0
byte 12 LSB Keep Alive (10) 0 0 0 0 1 0 1 0
Indicatore Clean Start
Impostato (1).
Timer Keep Alive
Impostato a 10 secondi (0x000A).
Messaggio Will
  • L'indicatore Will è impostato (1)
  • Il campo QoS Will è 1
  • L'indicatore RETAIN Will è deselezionato (0)

Payload

Il payload del messaggio CONNECT contiene una o tre stringhe codificate UTF. Se l'indicatore Will è impostato nel byte degli indicatori Connect nell'intestazione variabile, il payload deve contenere tutte e tre le stringhe codificate UTF:
Identificativo client

La prima stringa codificata UTF. L'ID Client (Identificativo Client) ha una lunghezza compresa tra 1 e 23 caratteri e identifica in modo univoco il client per il broker. Esso deve essere univoco tra tutti i client che si connettono ad un singolo broker ed è l'elemento chiave nella gestione dei messaggi di ID messaggio con livelli QoS 1 e 2. Se l'ID client contiene più di 23 caratteri, il broker risponde al messaggio CONNECT con un codice di ritorno CONNACK 2: identificativo respinto.

Argomento Will

La seconda stringa codificata UTF. Il messaggio Will è pubblicato nell'argomento Will. Il livello QoS è definito dal campo QoS di Will e lo stato RETAIN è definito dall'indicatore RETAIN Will nell'intestazione variabile.

Messaggio Will

La terza stringa codificata UTF. Il messaggio Will definisce il contenuto del messaggio pubblicato nell'argomento Will se il client è inaspettatamente scollegato.

Sebbene il messaggio Will sia codificato UTF nel messaggio CONNECT, quando è pubblicato nell'argomento Will vengono inviati solo i byte del messaggio, non i primi due byte della lunghezza. Il messaggio inviato quando il broker esegue il messaggio Will è ASCII non elaborato, non codificato UTF.

Risposta

Il broker invia un messaggio CONNACK in risposta ad un messaggio CONNECT da parte di un client.

Se il client non riceve un messaggio CONNACK dal broker entro un periodo di tempo "ragionevole", il client chiude la connessione socket TCP/IP e riavvia la sessione aprendo un socket per il broker e inoltrando un messaggio CONNECT. Un periodo di tempo "ragionevole" dipende dal tipo di applicazione e dall'infrastruttura delle comunicazioni.

Informazioni particolari | Marchi | Download | Libreria | Supporto | Commenti
Copyright IBM Corporation 1999, 2006 Ultimo aggiornamento: ago 17, 2006
ac10910_