aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/traccar/helper
diff options
context:
space:
mode:
authorSupriyo <hisupriyooo@gmail.com>2024-03-16 12:36:48 +0530
committerSupriyo <hisupriyooo@gmail.com>2024-03-16 12:36:48 +0530
commit22b0611d9c00e70f4b70787e314075afcd4538ec (patch)
tree3052870bf30b4fcc4aee5f30a40b74eb82f19ad6 /src/main/java/org/traccar/helper
parent87df697b992234caa6e89229dd7fe1ee194859f5 (diff)
downloadtrackermap-server-22b0611d9c00e70f4b70787e314075afcd4538ec.tar.gz
trackermap-server-22b0611d9c00e70f4b70787e314075afcd4538ec.tar.bz2
trackermap-server-22b0611d9c00e70f4b70787e314075afcd4538ec.zip
feat: refractor mqtt utils to MqttClient like EmqxClient
Diffstat (limited to 'src/main/java/org/traccar/helper')
-rw-r--r--src/main/java/org/traccar/helper/MqttUtil.java81
1 files changed, 0 insertions, 81 deletions
diff --git a/src/main/java/org/traccar/helper/MqttUtil.java b/src/main/java/org/traccar/helper/MqttUtil.java
deleted file mode 100644
index 9fc16012f..000000000
--- a/src/main/java/org/traccar/helper/MqttUtil.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright 2023 Anton Tananaev (anton@traccar.org)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.traccar.helper;
-
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.util.UUID;
-import java.util.function.BiConsumer;
-
-import com.hivemq.client.mqtt.datatypes.MqttQos;
-import com.hivemq.client.mqtt.mqtt5.Mqtt5AsyncClient;
-import com.hivemq.client.mqtt.mqtt5.Mqtt5Client;
-import com.hivemq.client.mqtt.mqtt5.Mqtt5ClientBuilder;
-import com.hivemq.client.mqtt.mqtt5.message.auth.Mqtt5SimpleAuth;
-import com.hivemq.client.mqtt.mqtt5.message.publish.Mqtt5PublishResult;
-
-public final class MqttUtil {
-
- private MqttUtil() {
-
- }
-
- public static Mqtt5AsyncClient createClient(final String url) {
- URI uri;
- try {
- uri = new URI(url);
- } catch (URISyntaxException e) {
- throw new RuntimeException(e);
- }
-
- Mqtt5SimpleAuth simpleAuth = getSimpleAuth(uri);
-
- String host = uri.getHost();
- int port = uri.getPort();
- Mqtt5ClientBuilder builder = Mqtt5Client.builder().identifier("traccar-" + UUID.randomUUID())
- .serverHost(host).serverPort(port).simpleAuth(simpleAuth).automaticReconnectWithDefaultConfig();
- Mqtt5AsyncClient client;
- client = builder.buildAsync();
- client.connectWith().send().whenComplete((message, e) -> {
- throw new RuntimeException(e);
- });
-
- return client;
- }
-
- private static Mqtt5SimpleAuth getSimpleAuth(final URI uri) {
- String userInfo = uri.getUserInfo();
- Mqtt5SimpleAuth simpleAuth = null;
- if (userInfo != null) {
- int delimiter = userInfo.indexOf(':');
- if (delimiter == -1) {
- throw new IllegalArgumentException("Wrong MQTT credentials. Should be in format \"username:password\"");
- } else {
- simpleAuth = Mqtt5SimpleAuth.builder().username(userInfo.substring(0, delimiter++))
- .password(userInfo.substring(delimiter).getBytes()).build();
- }
- }
- return simpleAuth;
- }
-
- public static void publish(final Mqtt5AsyncClient client, final String pubTopic, final String payload,
- final BiConsumer<? super Mqtt5PublishResult,
- ? super Throwable> whenComplete) {
- client.publishWith().topic(pubTopic).qos(MqttQos.AT_LEAST_ONCE).payload(payload.getBytes()).send()
- .whenComplete(whenComplete);
- }
-
-}