乐闻世界logo
搜索文章和话题

How to subscribe to a MQTT topic and print received messages on Eclipse (Java)

3 个月前提问
3 个月前修改
浏览次数8

1个答案

1

在Eclipse中使用Java订阅MQTT主题并打印收到的消息,主要分为以下几个步骤:

1. 添加依赖库

首先,您需要在您的项目中添加MQTT客户端库。一个常用的库是Eclipse Paho。假设您使用的是Maven项目,可以在pom.xml中添加以下依赖:

xml
<dependency> <groupId>org.eclipse.paho</groupId> <artifactId>org.eclipse.paho.client.mqttv3</artifactId> <version>1.2.5</version> </dependency>

2. 创建MQTT客户端

接下来,您需要创建一个MQTT客户端,这个客户端将负责与MQTT服务器的连接和通信。

java
import org.eclipse.paho.client.mqttv3.MqttClient; import org.eclipse.paho.client.mqttv3.MqttConnectOptions; public class MqttSubscribeSample { public static void main(String[] args) { try { MqttClient client = new MqttClient("tcp://mqtt.example.com:1883", MqttClient.generateClientId()); MqttConnectOptions options = new MqttConnectOptions(); options.setAutomaticReconnect(true); options.setCleanSession(true); options.setConnectionTimeout(10); client.connect(options); // ... } catch (Exception e) { e.printStackTrace(); } } }

3. 设置回调并订阅主题

在连接到服务器之后,您需要设置一个回调,这个回调会处理所有接收到的消息。然后订阅您想要监听的主题。

java
import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken; import org.eclipse.paho.client.mqttv3.MqttCallback; import org.eclipse.paho.client.mqttv3.MqttMessage; public class MqttSubscribeSample { public static void main(String[] args) { try { MqttClient client = new MqttClient("tcp://mqtt.example.com:1883", MqttClient.generateClientId()); MqttConnectOptions options = new MqttConnectOptions(); options.setAutomaticReconnect(true); options.setCleanSession(true); options.setConnectionTimeout(10); client.connect(options); client.setCallback(new MqttCallback() { public void connectionLost(Throwable cause) { System.out.println("Connection lost!"); } public void messageArrived(String topic, MqttMessage message) throws Exception { System.out.printf("Message received:\n\tTopic: %s\n\tMessage: %s\n", topic, new String(message.getPayload())); } public void deliveryComplete(IMqttDeliveryToken token) { // Called when a message has been delivered to the server } }); client.subscribe("your/topic"); } catch (Exception e) { e.printStackTrace(); } } }

4. 运行并测试

最后,运行您的应用程序并发送消息到your/topic,您应该可以看到控制台输出接收到的消息。

总结

通过以上步骤,您可以在Eclipse使用Java订阅MQTT主题并处理接收到的消息。这个过程涉及到设置MQTT客户端,连接到服务器,设置消息回调,并订阅感兴趣的主题。在实际应用中,您可以根据需求订阅多个主题,并在消息回调中实现更复杂的逻辑。

2024年8月21日 01:47 回复

你的答案