aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/re/jag/mcqtt/MQTTHandler.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/re/jag/mcqtt/MQTTHandler.java')
-rw-r--r--src/main/java/re/jag/mcqtt/MQTTHandler.java38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/main/java/re/jag/mcqtt/MQTTHandler.java b/src/main/java/re/jag/mcqtt/MQTTHandler.java
new file mode 100644
index 0000000..78033c1
--- /dev/null
+++ b/src/main/java/re/jag/mcqtt/MQTTHandler.java
@@ -0,0 +1,38 @@
+package re.jag.mcqtt;
+
+import org.eclipse.paho.client.mqttv3.MqttClient;
+import org.eclipse.paho.client.mqttv3.MqttException;
+
+public class MQTTHandler {
+ private String server;
+ private String user;
+ private String password;
+
+ private MqttClient client;
+ private Thread client_thread;
+ private boolean should_stop = false;
+
+ MQTTHandler(String _server, String _user, String _password){
+ try {
+ client = new MqttClient(_server, _user);
+ } catch (MqttException e) {
+ Mcqtt.LOG.error(e.getMessage());
+ return;
+ }
+
+ client_thread = new Thread(this::run);
+ client_thread.run();
+ }
+
+ private void run() {
+ while ( ! should_stop ) {
+ // TODO wait for publish interval
+ if ( ! client.isConnected() ) {
+ try { client.connect(); } catch (MqttException e) {
+ Mcqtt.LOG.error( e.getMessage() );
+ continue; // TODO wait for reconnect
+ }
+ }
+ }
+ }
+}