Hola Janette:
No he probado nunca MQTT en un teléfono como servidor, quizás otros puedan ayudarte con eso.
Sólo se me ocurre que quizás este proyecto pueda servirte de inspiración, aunque creo que usa un servidor MQTT externo:
Requires B4A V9.90 or higher. Hello fellow B4X developers. Here is my example of using a broadcast address to automatically find another devices IP address on a network, then to use that IP address to play a game (in this case Tic-Tac-Toe) across that WiFi network (device 1 vs device 2...
www.b4x.com
Descarge la Beta de b4a para poder pobar este codigo, y como me temia, abre una conexion 1 a 1, lo que no permitiria trabajar varios dispositivos a la vez.
Ademas de eso, al instalar en KitKat me da error por el SDK (el minimo es 21), aun asi me brinque la regla, y baje el minimo a 19, compile y "medio funciona".
Tengo dos dispositivos, un KitKat y un Lollipop.
El Kitkat muestra todo de forma correcta, excepto el letrero que indica que no hay conexion. Por su parte el Lollipop no recibe los datos del Kitkat.
Ademas tengo el Debug en el kitkat, y en los logs me aparece:
java.lang.IllegalArgumentException: Socket address unresolved: null:1395
No se si tenga que ver Kitkat vs Lollipop.
El que no tenga soporte para Kitkat podria ser un problema, ya que hay alumnos con ese sdk. Por otro lado, como comente, es una conexion 1 a 1.
Curioso lo que sucede que este ejemplo y con el MQTT, ya que por ejemplo, probe el ejemplo de FileTransfer (via sockets) y funciona perfecto. Lo probe hace tiempo en Lollipop, Kitkat, Marshmallow y Oreo, y en ninguno me ha dado batalla.