No MQTT, é o cliente que inicia a conexão com uma mensagem CONNECT.
O primeiro campo do pacote é o clientId
:
O identificador de cliente (ClientId curto) é um identificador de cada cliente MQTT que está se conectando a um broker MQTT. Como o identificador de palavras já sugere, ele deve ser exclusivo por corretor. O broker utiliza-o para identificar o cliente e o estado atual do cliente. (Imagem e citação são tiradas daqui .)
Agora, digamos que eu tenho dois clientes, o cliente X e Y na seguinte situação.
- Broker lançado, ainda não há clientes.
- O X se conecta com êxito ao broker com
client-1
id, nome de usuário éX
. - Agora, Y tenta se conectar usando
client-1
como id, nome de usuário éY
.
O que vai acontecer?
- Com base no clientId, o intermediário pensará que X executa uma tentativa repetida de conexão que é um comportamento anormal .
- Nada de extraordinário vai acontecer. Y se conecta com sucesso, pois usa um nome de usuário diferente .
- Nada de extraordinário vai acontecer. O broker rejeitará a tentativa de conexão Y, pois o clientId fornecido já está em uso.