Cuando se establece una conexión de socket TCP/IP entre el cliente y el intermediario, se requiere una sesión de nivel de protocolo. Se da por supuesto que la dirección de la conexión es de cliente a intermediario, y que el cliente da soporte a la funcionalidad del escucha del intermediario.
En la tabla siguiente se muestra el formato de cabecera fija.
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|
byte 1 | Tipo de mensaje (1) | Distintivo DUP | Nivel de QoS | RETAIN | ||||
0 | 0 | 0 | 1 | x | x | x | x | |
byte 2 | Longitud restante |
Los distintivos DUP, QoS y RETAIN no se utilizan en el mensaje CONNECT.
La longitud restante es la longitud de la cabecera variable (12 bytes) y la longitud de la carga útil. Este campo puede ser un campo de varios bytes.
En la tabla siguiente se muestra un ejemplo del formato de la cabecera variable.
Descripción | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
---|---|---|---|---|---|---|---|---|---|
Nombre de protocolo | |||||||||
byte 1 | Longitud MSB (0) | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
byte 2 | Longitud LSB (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 |
Número de versión de protocolo | |||||||||
byte 9 | Versión (3) | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
Distintivos Connect | |||||||||
byte 10 | Will RETAIN (0) |
x | x | 0 | 0 | 1 | 1 | 1 | x |
Temporizador de activación | |||||||||
byte 11 | Activación MSB (0) | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
byte 12 | Activación LSB (10) | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 |
La primera serie de caracteres codificada en UTF. El identificador de cliente (ID de cliente) tiene una longitud que oscila entre 1 y 23 caracteres y que identifica de forma exclusiva al cliente para el intermediario. Debe ser exclusiva en todos los clientes que se conectan a un solo intermediario y es la clave en el manejo de mensajes de ID de mensajes con niveles de QoS 1 y 2. Si el ID de cliente contiene más de 23 caracteres, el intermediario responde al mensaje CONNECT con un código de retorno CONNACK 2: identificador rechazado.
La segunda serie de caracteres codificada en UTF. El mensaje Will se publica con el tema Will. El nivel de QoS lo define el campo Will QoS y el estado de RETAIN lo define el distintivo Will RETAIN en la pulgadas variable.
Tercera serie de caracteres codificada en UTF. El mensaje Will define el contenido del mensaje que se publica en el tema Will si el cliente se desconecta de forma inesperada.
Aunque el mensaje Will está codificado en UTF en el mensaje CONNECT, cuando se publica en el tema Will sólo se envían los bytes del mensaje, no los dos primeros bytes de longitud. El mensaje enviado cuando el intermediario ejecuta el mensaje Will es ASCII sin formato, no codificado en UTF.
El intermediario envía un mensaje CONNACK en respuesta a un mensaje CONNECT desde un cliente.
Si el cliente no recibe un mensaje CONNACK del intermediario en una cantidad de tiempo razonable, el cliente cierra la conexión de socket TCP/IP y reinicia la sesión abriendo un socket para el intermediario y emitiendo un mensaje CONNECT. Una cantidad de tiempo "razonable" depende del tipo de aplicación y de la infraestructura de comunicaciones.
Avisos |
Marcas registradas |
Descargas |
Biblioteca |
Soporte |
Información de retorno (feedback)
![]() ![]() |
ac10910_ |