MQTT broker for Android

Here is an MQTT broker library I have adapted to Android: https://github.com/interaktionsbyran/moquette You'll have to make your own Android app though, it is just a library.


You can run the mosquitto mqtt broker within the Termux terminal.

  • Install Termux using e.g. F-Droid
  • Open/run the Termux Terminal emulator
  • Install mosquitto

    pkg install mosquitto

  • Start mosquitto within the terminal

    mosquitto

That's it. The server will listen on the default port 1883. Configuration see at mosquitto.


I have developed an App specifically for this , please download here -

It has inbuilt broker and client too..all for free , connect your devices to android phone via hotspot or wifi.

https://play.google.com/store/apps/details?id=server.com.mqtt


Add these dependencies to the gradle

    dependencies{
   compile 'io.moquette:moquette-netty-parser:0.8.1'
    compile 'io.moquette:moquette-broker:0.8.1'
    compile 'io.moquette:moquette-parser-commons:0.8.1'
}

And use

io.moquette.server.Server server = new io.moquette.server.Server();
server.startServer();

to start broker server. the default URI is tcp://localhost:1883

For me server.startServer(); gave me exception as it is unable to create a file BrokerConstants.DEFAULT_MOQUETTE_STORE_MAP_DB_FILENAME. So, I changed the destination of the BrokerConstants.DEFAULT_MOQUETTE_STORE_MAP_DB_FILENAME using this code below code and it worked for me.

     try {
         MemoryConfig memoryConfig = new MemoryConfig(new Properties());
memoryConfig.setProperty(BrokerConstants.PERSISTENT_STORE_PROPERTY_NAME, Environment.getExternalStorageDirectory().getAbsolutePath()+ File.separator + BrokerConstants.DEFAULT_MOQUETTE_STORE_MAP_DB_FILENAME);
    server.startServer(memoryConfig); 
        // server.startServer();//is not working due to DEFAULT_MOQUETTE_STORE_MAP_DB_FILENAME; 
        Log.d(TAG,"Server Started");
         }
         catch (IOException e) { e.printStackTrace(); }
         catch (Exception e){ e.printStackTrace(); }

And Use Paho libraries for android

compile 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.1.0'
compile 'org.eclipse.paho:org.eclipse.paho.android.service:1.1.1'

To create a client and connect to tcp://localhost:1883 and subscribe for a topic and start publishing and receiving messages.

moquette library for android.

Tags:

Android

Mqtt