Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can i connect a Java mqtt client with username and password to an emqttd(EMQ) broker?

I am able to subscribe to the mosquitto broker with this Java code, without username and password. Now, i would like to subscribe to an emqttd broker which requires some dummy username and password. How can i do this?. Thanks.

http://tgrall.github.io/blog/2017/01/02/getting-started-with-mqtt/#disqus_thread

https://github.com/emqtt/emqttd

package com.mapr.demo.mqtt.simple;

import org.eclipse.paho.client.mqttv3.MqttClient;
import org.eclipse.paho.client.mqttv3.MqttException;

public class Subscriber {

  public static void main(String[] args) throws MqttException {

    System.out.println("== START SUBSCRIBER ==");

    MqttClient client=new MqttClient("tcp://localhost:1883", MqttClient.generateClientId());
    client.setCallback( new SimpleMqttCallBack() );
    client.connect();

    client.subscribe("iot_data");

  }

}
like image 568
R.Alamsha Avatar asked Dec 17 '22 21:12

R.Alamsha


1 Answers

You could use the MqttConnectOptions:

 public class Subscriber {

    private static final String CONNECTION_URL = "tcp://localhost:1883";
    private static final String SUBSCRIPTION = "iot_data";
    private static final String USERNAME = "username";
    private static final String PASSWORD = "top-secret";


    public static void main(String[] args) throws MqttException {

       System.out.println("== START SUBSCRIBER ==");

       MqttClient client = new MqttClient(CONNECTION_URL, 
       MqttClient.generateClientId());

       MqttConnectOptions connOpts = setUpConnectionOptions(USERNAME, PASSWORD);
       client.connect(connOpts);

       client.subscribe(SUBSCRIPTION);

    }

   private static MqttConnectOptions setUpConnectionOptions(String username, String password) {
       MqttConnectOptions connOpts = new MqttConnectOptions();
       connOpts.setCleanSession(true);
       connOpts.setUserName(username);
       connOpts.setPassword(password.toCharArray());
       return connOpts;
   }  

  }
like image 173
Eirini Graonidou Avatar answered Apr 18 '23 22:04

Eirini Graonidou