Commit 5309619d authored by Riccardo Presotto's avatar Riccardo Presotto

work in progress mqtt

parent de198fc6
package MQTT;
import org.eclipse.paho.client.mqttv3.MqttClient;
import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
import org.eclipse.paho.client.mqttv3.MqttException;
import org.eclipse.paho.client.mqttv3.MqttMessage;
public class PubExample {
public static void main(String[] args) {
// Create an Mqtt client
String broker = "tcp://localhost:1883";
String clientId = "tem_sens_01";
String topic = "home/sensors/bedroom/temperature";
int qos = 1;
{
try {
MqttClient mqttClient = new MqttClient(broker, clientId);
MqttConnectOptions connOpts = new MqttConnectOptions();
connOpts.setCleanSession(true); // false = the broker stores all subscriptions for the client and all missed messages for the client that subscribed with a Qos level 1 or 2
// connOpts.setKeepAliveInterval(1000); //longest period of time that the broker and client can endure without sending a message.
// connOpts.setWill(); //If the client disconnects ungracefully, the broker sends the LWT message on behalf of the client.
// Connect the client
System.out.println(clientId + " Connecting Broker" + broker);
mqttClient.connect(connOpts);
System.out.println(clientId + " Connected");
// Create a Mqtt message
String randTemp = String.valueOf(18 + (Math.random() * 4)); // create a random temperature between 18 and 22 degrees
MqttMessage message = new MqttMessage(randTemp.getBytes());
// Set the QoS on the Message
message.setQos(qos);
System.out.println(clientId + " Publishing message: " + randTemp + " ...");
mqttClient.publish(topic, message);
System.out.println(clientId + " Message published");
// Disconnect the client
mqttClient.disconnect();
System.out.println("Publisher " + clientId + " disconnected");
} catch (MqttException me) {
System.out.println("reason " + me.getReasonCode());
System.out.println("msg " + me.getMessage());
System.out.println("loc " + me.getLocalizedMessage());
System.out.println("cause " + me.getCause());
System.out.println("excep " + me);
me.printStackTrace();
}
}
}
}
package MQTT;
import org.eclipse.paho.client.mqttv3.*;
import java.sql.Timestamp;
import java.util.Scanner;
public class SubExample {
public static void main(String[] args) {
// Create an Mqtt client
System.out.println("Subscriber initializing...");
String broker = "tcp://localhost:1883";
String clientId = "sub_01";
String topic = "home/sensors/bedroom/temperature";
int qos = 1;
try {
// Create an Mqtt client
MqttClient mqttClient = new MqttClient(broker, clientId);
MqttConnectOptions connOpts = new MqttConnectOptions();
connOpts.setCleanSession(true);
// Connect the client
System.out.println(clientId + " Connecting to " + broker);
mqttClient.connect(connOpts);
System.out.println(clientId + " Connected");
// Callback
mqttClient.setCallback(new MqttCallback() {
public void messageArrived(String topic, MqttMessage message) {
// Called when a message arrives from the server that matches any subscription made by the client
String time = new Timestamp(System.currentTimeMillis()).toString();
String receivedMessage = new String(message.getPayload());
System.out.println(clientId + " Received a Message!" +
"\n\tTime: " + time +
"\n\tTopic: " + topic +
"\n\tMessage: " + receivedMessage +
"\n\tQoS: " + message.getQos() + "\n");
System.out.println("\n *** Press return to exit *** \n");
}
public void connectionLost(Throwable cause) {
System.out.println(clientId + " Connectionlost! " + cause.getMessage());
}
public void deliveryComplete(IMqttDeliveryToken token) {
}
});
// Subscribe client to the topic filter and a QoS level of 1
System.out.println("Subscribing client "+clientId+" to topic: " + topic);
mqttClient.subscribe(topic, qos);
System.out.println(clientId + " Subscribed");
System.out.println("\n *** Press a random key to exit *** \n");
Scanner command = new Scanner(System.in);
command.nextLine();
if (mqttClient.isConnected())
mqttClient.disconnect();
} catch (MqttException me) {
System.out.println("reason " + me.getReasonCode());
System.out.println("msg " + me.getMessage());
System.out.println("loc " + me.getLocalizedMessage());
System.out.println("cause " + me.getCause());
System.out.println("excep " + me);
me.printStackTrace();
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment