Você precisa de um proxy de corretor ou um servidor da web ...
Primeiro de tudo, você precisa absolutamente de um serviço de autenticação em algum lugar conectado ao seu broker para executar o 2FA usando tópicos específicos ( /auth/RFID
, ...). Isso permitiria ao cliente publicar informações (veja abaixo).
O primeiro problema que vejo aqui é que qualquer pessoa inscrita neste tópico pode ler as informações desse tópico, mas você pode bloquear tópicos !
Você pode dizer (forçar) todos os seus dispositivos para publicar informações /proxy/mytopic
. Com o recurso clientId do mqtt, o serviço de autenticação pode verificar se as mensagens enviadas deste tópico são de um dispositivo autenticado que usava o 2FA anteriormente e, em seguida, publicar sua própria mensagem em nome do dispositivo /proxyout/mytopic
com o ID do dispositivo na carga útil.
O problema agora é procurar dispositivos que possam receber mensagens se eles forem autenticados, porque, bem, o MQTT tem tudo a ver com publicação em massa. O serviço de autenticação precisa ter uma lista de dispositivos autenticados e verificar se eles são elegíveis para recepção. Novamente, criptografia de carga útil e descriptografia no lado do dispositivo ...
Acho que minha solução é muito exagerada sobre os recursos do MQTT. Portanto, você deve usar um soquete ou um servidor web ...