要通过MQTT订阅主题为xxx步骤,可以使用以下示例代码:
import org.eclipse.paho.client.mqttv3.*;
import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
public class MqttSubscribeExample {
public static void main(String[] args) {
String broker = "tcp://mqtt.eclipseprojects.io:1883";
String clientId = "JavaMqttClient";
String topic = "主题";
try {
// 创建一个MQTT客户端
MqttClient mqttClient = new MqttClient(broker, clientId, new MemoryPersistence());
// 创建连接选项
MqttConnectOptions connOpts = new MqttConnectOptions();
connOpts.setCleanSession(true);
// 连接到MQTT服务器
System.out.println("Connecting to broker: " + broker);
mqttClient.connect(connOpts);
System.out.println("Connected");
// 创建订阅回调
mqttClient.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: " + topic + " " + message);
}
@Override
public void deliveryComplete(IMqttDeliveryToken token) {
System.out.println("Delivery complete");
}
});
// 订阅主题
mqttClient.subscribe(topic);
System.out.println("Subscribed to topic: " + topic);
} catch (MqttException e) {
e.printStackTrace();
}
}
}
这将使用Paho MQTT库订阅 xxx 主题。当收到新消息时,messageArrived
方法将会被调用并输出接收到的消息。请注意,您需要将 broker
变量的值替换为您要连接的MQTT服务器地址。