MQTT broker for Android

android, mqtt

Solution

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.

Problem

Does anyone know of an MQTT broker that runs on an Android smartphone? I tried to Google and found nothing, and on the app store there seems to be only one app with just 10 downloads, so I'm not sure how well it works.

Original source