Io, come detto, userei un web server (ma solo perché non conosco MQTT).
Il tutto dovrà funzionare soltanto in rete locale? Lo chiedo ANCHE perché riconoscere i client non è semplicissimo (usare l'IP può andare bene, ma se questi sono fissi e di solito non lo sono).
Client B4J non ne ho fatti, ma non dovrebbe essere complicato, devi sempre usare un websocket per comunicare col server b4j "supervisore".
Darti suggerimenti... più che dirti che ci sono esempi sia di MQTT che di web server... vorrebbe dire svilupparti il progetto, non so come altro aiutarti.