Java MQTT代理示例代码:本地搭建、持续接收和订阅消息
以下是一个使用 Eclipse Paho MQTT Java 客户端库实现的简单 MQTT 代理示例代码:
import org.eclipse.paho.client.mqttv3.*;
public class MqttProxy {
private static final String BROKER_URL = 'tcp://localhost:1883';
private static final String CLIENT_ID = 'mqtt-proxy';
private static final String SUBSCRIBE_TOPIC = 'test/topic';
private static final int QOS = 2;
public static void main(String[] args) {
try {
MqttClient mqttClient = new MqttClient(BROKER_URL, CLIENT_ID);
mqttClient.setCallback(new MqttCallback() {
@Override
public void connectionLost(Throwable cause) {
System.out.println('Connection lost: ' + cause.getMessage());
}
@Override
public void messageArrived(String topic, MqttMessage message) throws Exception {
System.out.println('Received message: ' + new String(message.getPayload()));
}
@Override
public void deliveryComplete(IMqttDeliveryToken token) {
// Not used in this example
}
});
mqttClient.connect();
mqttClient.subscribe(SUBSCRIBE_TOPIC, QOS);
System.out.println('MQTT proxy is running. Press Ctrl+C to exit.');
while (true) {
// Keep the proxy running
}
} catch (MqttException e) {
e.printStackTrace();
}
}
}
在上面的示例代码中,我们使用了 Eclipse Paho MQTT Java 客户端库来实现 MQTT 代理。首先,我们定义了代理连接到的 MQTT 服务器的 URL 和代理的客户端ID。然后,我们创建一个 MqttClient 对象,并设置一个 MqttCallback 对象作为回调函数,以便处理连接丢失、接收消息和消息传递完成等事件。
在 main 方法中,我们连接到 MQTT 服务器,订阅指定的主题,并通过一个无限循环来保持代理持续运行。当代理接收到消息时,它会打印接收到的消息内容。
请注意,你需要在代码中更改 BROKER_URL、CLIENT_ID 和 SUBSCRIBE_TOPIC 的值来适应你的实际环境和需求。
你可以使用 Maven 来添加 Eclipse Paho MQTT Java 客户端库的依赖:
<dependencies>
<dependency>
<groupId>org.eclipse.paho</groupId>
<artifactId>org.eclipse.paho.client.mqttv3</artifactId>
<version>1.2.5</version>
</dependency>
</dependencies>
希望这可以帮助到你!
原文地址: https://www.cveoy.top/t/topic/Mfc 著作权归作者所有。请勿转载和采集!