MQTT(Message Queuing Telemetry Transport) — протокол передачи сообщений, разработанный для сетевых сред с низкой пропускной способностью, высокой задержкой или нестабильностью. Он широко используется в Интернете вещей (IoT), межмашинной связи (M2M) и передаче данных в реальном времени. В этой статье подробно объясняется, как использовать MQTT в Java Протокол обеспечивает эффективный обмен сообщениями.
MQTT имеет следующие преимущества:
Прежде чем углубиться в реализацию Java, нам необходимо понять некоторые основные концепции MQTT:
хотеть Использование MQTT в Java, мы можем использовать Eclipse Paho библиотека. Пахо это открытый исходный код MQTT Клиентская библиотека, поддерживающая несколько языков программирования, включая Java。
Во-первых, в проекте pom.xml
Добавить в файл Paho MQTT Клиентские зависимости:
<dependency>
<groupId>org.eclipse.paho</groupId>
<artifactId>org.eclipse.paho.client.mqttv3</artifactId>
<version>1.2.5</version>
</dependency>
Далее мы создаем экземпляр клиента MQTT и подключаемся к MQTT Broker:
import org.eclipse.paho.client.mqttv3.*;
import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
public class MqttExample {
public static void main(String[] args) {
String broker = "tcp://broker.hivemq.com:1883";
String clientId = "JavaSample";
MemoryPersistence persistence = new MemoryPersistence();
try {
MqttClient client = new MqttClient(broker, clientId, persistence);
MqttConnectOptions connOpts = new MqttConnectOptions();
connOpts.setCleanSession(true);
System.out.println("Connecting to broker: " + broker);
client.connect(connOpts);
System.out.println("Connected");
// Подписаться на тему
String topic = "test/topic";
client.subscribe(topic);
// Опубликовать сообщение
String content = "Hello MQTT";
int qos = 2;
MqttMessage message = new MqttMessage(content.getBytes());
message.setQos(qos);
client.publish(topic, message);
// Отключить
client.disconnect();
System.out.println("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();
}
}
}
Для получения и обработки Broker Чтобы отправить сообщение, нам нужно реализовать MqttCallback
интерфейс и установите для него значение MQTT Обратный звонок клиента:
import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken;
import org.eclipse.paho.client.mqttv3.MqttCallback;
import org.eclipse.paho.client.mqttv3.MqttMessage;
public class MqttExample implements MqttCallback {
@Override
public void connectionLost(Throwable cause) {
System.out.println("Connection lost");
cause.printStackTrace();
}
@Override
public void messageArrived(String topic, MqttMessage message) throws Exception {
System.out.println("Message arrived: " + new String(message.getPayload()));
}
@Override
public void deliveryComplete(IMqttDeliveryToken token) {
System.out.println("Delivery complete");
}
// Другие коды...
}
Интегрируйте приведенный выше код в полный класс Java и запустите его. Вы увидите следующий результат:
Connecting to broker: tcp://broker.hivemq.com:1883
Connected
Message arrived: Hello MQTT
Disconnected
Благодаря этой статье мы узнали, как использовать MQTT в Java Протокол обеспечивает эффективный обмен сообщениями.Мы представили MQTT основные понятия, показывающие, как использовать Eclipse Paho Создание библиотеки MQTT Клиент, подписывается на темы, публикует сообщения и обрабатывает обратные вызовы сообщений. MQTT Он имеет широкие перспективы применения в сфере Интернета вещей и передачи данных в реальном времени.