使用java 实现一个简单的demo
时间: 2023-08-04 17:07:41 浏览: 52
当然,以下是一个使用Java实现简单的MQTT发布和订阅的示例代码:
```java
import org.eclipse.paho.client.mqttv3.*;
import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
public class MqttDemo {
public static void main(String[] args) {
String broker = "tcp://mqtt.example.com:1883"; // MQTT服务器地址
String clientId = "JavaClient"; // 客户端ID
String topic = "test/topic"; // 主题
try {
MqttClient client = new MqttClient(broker, clientId, new MemoryPersistence());
MqttConnectOptions connOpts = new MqttConnectOptions();
connOpts.setCleanSession(true);
System.out.println("Connecting to broker: " + broker);
client.connect(connOpts);
System.out.println("Connected");
// 发布消息
String content = "Hello, MQTT!";
int qos = 0;
System.out.println("Publishing message: " + content);
MqttMessage message = new MqttMessage(content.getBytes());
message.setQos(qos);
client.publish(topic, message);
// 订阅消息
System.out.println("Subscribing to topic: " + topic);
client.subscribe(topic, new MqttCallback() {
public void connectionLost(Throwable cause) {
System.out.println("Connection lost!");
}
public void messageArrived(String topic, MqttMessage message) throws Exception {
System.out.println("Message received: " + new String(message.getPayload()));
}
public void deliveryComplete(IMqttDeliveryToken token) {
System.out.println("Delivery complete!");
}
});
// 挂起程序,等待消息到达
Thread.sleep(5000);
// 断开连接
client.disconnect();
System.out.println("Disconnected");
} catch (MqttException | InterruptedException e) {
e.printStackTrace();
}
}
}
```
请确保在运行代码之前将MQTT服务器地址、客户端ID和主题替换为正确的值。这个示例中,客户端首先连接到MQTT服务器,然后发布一条消息到指定主题,同时订阅该主题以接收消息。在接收到消息后,程序将打印出消息内容。最后,程序挂起一段时间以等待消息到达,然后断开连接。
这只是一个简单的示例,您可以根据自己的需求进行修改和扩展。