错了,是把你的java代码改成在两个方法中订阅不同topic的模式
时间: 2023-05-30 19:06:15 浏览: 87
java 源代码 不知道那错了
好的,以下是将Java代码改为在两个方法中订阅不同topic的模式:
```java
import org.eclipse.paho.client.mqttv3.*;
import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
public class MQTTSubscriber {
public static void main(String[] args) {
String broker = "tcp://localhost:1883"; // MQTT broker的URL
String clientId = "JavaSubscriber"; // 定义MQTT客户端ID
MemoryPersistence persistence = new MemoryPersistence();
try {
// 创建MQTT客户端连接对象
MqttClient client = new MqttClient(broker, clientId, persistence);
// 设置MQTT回调函数
client.setCallback(new MqttCallback() {
@Override
public void connectionLost(Throwable throwable) {
System.out.println("连接丢失: " + throwable.getMessage());
}
@Override
public void messageArrived(String topic, MqttMessage mqttMessage) throws Exception {
System.out.println("收到消息: " + new String(mqttMessage.getPayload()));
}
@Override
public void deliveryComplete(IMqttDeliveryToken iMqttDeliveryToken) {
System.out.println("消息已送达到MQTT broker");
}
});
// 连接MQTT broker
client.connect();
// 订阅Topic1
String topic1 = "Topic1";
client.subscribe(topic1);
// 订阅Topic2
String topic2 = "Topic2";
client.subscribe(topic2);
} catch (MqttException e) {
e.printStackTrace();
}
}
}
```
上面的代码中,我们使用了两个方法来订阅不同的主题。在这个例子中,我们订阅了“Topic1”和“Topic2”两个主题。当接收到来自这些主题的消息时,我们定义了一个回调函数来处理这些消息。在这个例子中,我们只是简单地打印出接收到的消息。
阅读全文