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");
}
}
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;
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With