De acordo com as especificações , é sempre o cliente que deve estabelecer a conexão com um servidor.
Cliente:
Um programa ou dispositivo que usa o MQTT. Um cliente sempre estabelece a conexão de rede com o servidor . Pode
Publique mensagens de aplicativos nas quais outros clientes possam estar interessados.
Inscreva-se para solicitar as Mensagens do aplicativo que ele está interessado em receber.
Cancele a inscrição para remover uma solicitação de mensagens do aplicativo.
Desconecte do servidor.
E se esse cliente se inscrever para receber uma mensagem do aplicativo, o servidor deverá encaminhar essas mensagens para esse cliente específico.
Servidor:
Um programa ou dispositivo que atua como intermediário entre Clientes que publicam Mensagens de Aplicativo e Clientes que fizeram Assinaturas. Um servidor
Aceita conexões de rede de clientes.
Aceita mensagens de aplicativos publicadas por clientes.
Processos Solicitações de inscrição e cancelamento de inscrição de clientes.
Encaminha mensagens de aplicativos que correspondem às assinaturas de clientes .
Isso significa que, se um cliente se inscrever, ele permanecerá conectado ao servidor enquanto a assinatura for válida, mesmo que não haja fluxo de dados na maioria das vezes?
Eu chego a essa conclusão porque, se o cliente se desconectar após a assinatura, um servidor não poderá encaminhar mensagens para ele porque é o cliente que deve estabelecer a conexão. Mas não saberá quando restabelecê-lo.