MQTT имеет понятие «постоянные сессии». Существует флаг под названием «чистый сеанс», который клиент отправляет посреднику в пакете подключения при первом подключении. Установив для этого флага значение false, клиент просит брокера «запомнить меня».
Затем, если клиент отключает или теряет соединение, брокер будет хранить сообщения для клиента до следующего повторного подключения, и отправьте их клиенту в полученном порядке.
В MQTT каждый клиент должен иметь уникальный "ClientID". Это то, как брокер распознает клиента при повторном подключении. Клиент использует подписки, чтобы сообщить брокеру, какие сообщения он хочет получить при первом подключении, а затем после этого брокер запоминает список подписок для этого клиента и все сообщения, соответствующие этим подпискам.
Итак, для вашего сценария клиент B должен будет подключиться один раз с постоянным сеансом, а затем после , что брокер будет хранить сообщения для него всякий раз, когда он отключается.