Selon les spécifications , c'est toujours le client qui doit établir la connexion avec un serveur.
Client:
Un programme ou un périphérique qui utilise MQTT. Un client établit toujours la connexion réseau au serveur . Ça peut
Publiez les messages d'application qui pourraient intéresser d'autres clients.
Abonnez-vous pour demander des messages d'application qu'il souhaite recevoir.
Se désinscrire pour supprimer une demande de messages d'application.
Déconnectez-vous du serveur.
Et si ce client s'abonne à un message d'application, le serveur doit transmettre ces messages à ce client particulier.
Serveur:
Un programme ou un périphérique qui agit en tant qu'intermédiaire entre les clients qui publient des messages d'application et les clients qui ont effectué des abonnements. Un serveur
Accepte les connexions réseau des clients.
Accepte les messages d'application publiés par les clients.
Traite les demandes d'abonnement et de désabonnement des clients.
Transmet les messages d'application qui correspondent aux abonnements client .
Est-ce à dire que si un client s'abonne, il reste connecté au serveur pendant que l'abonnement est valide même s'il n'y a pas de flux de données la plupart du temps?
J'arrive à cette conclusion parce que si le client se déconnecte après l'abonnement, un serveur ne peut pas lui transmettre de messages car c'est le client qui doit établir la connexion. Mais il ne saura pas quand le rétablir.