import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken;
import org.eclipse.paho.client.mqttv3.MqttCallback;
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 MqttExample {
public static void main(String[] args) {
String broker = "tcp://mqtt-broker:1883"; // MQTT代理服务器地址
String clientId = "JavaSampleClient"; // 客户端ID
String topic = "test/topic"; // 订阅的主题
int qos = 2; // 消息服务质量
try {
// 创建MQTT客户端
MqttClient client = new MqttClient(broker, clientId);
// 设置连接选项
MqttConnectOptions connOpts = new MqttConnectOptions();
connOpts.setCleanSession(true);
System.out.println("Connecting to broker: " + broker);
// 连接到代理服务器
client.connect(connOpts);
System.out.println("Connected");
// 设置回调函数
client.setCallback(new MqttCallback() {
@Override
public void connectionLost(Throwable cause) {
System.out.println("Connection lost");
}
@Override
public void messageArrived(String topic, MqttMessage message) throws Exception {
System.out.println("Message arrived from topic \"" + topic + "\": " + new String(message.getPayload()));
}
@Override
public void deliveryComplete(IMqttDeliveryToken token) {
System.out.println("Delivery complete");
}
});
// 订阅主题
client.subscribe(topic, qos);
System.out.println("Subscribed to topic: " + topic);
// 发布消息
String content = "Hello MQTT";
MqttMessage message = new MqttMessage(content.getBytes());
message.setQos(qos);
client.publish(topic, message);
System.out.println("Message published");
} 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();
}
}
}
MqttClient类创建一个客户端实例。MqttConnectOptions类设置连接选项,例如是否清除会话。connect方法连接到指定的MQTT代理服务器。setCallback方法设置回调函数,用于处理连接丢失、消息到达和消息发送完成等事件。subscribe方法订阅指定的主题。publish方法向指定的主题发布消息。以上代码展示了如何使用Java编写一个简单的MQTT客户端,包括连接、订阅、发布和处理消息等功能。
上一篇:java set去重
下一篇:java基础数据类型有几种
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站