以下是一个使用 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_URLCLIENT_IDSUBSCRIBE_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>

希望这可以帮助到你!

Java MQTT代理示例代码:本地搭建、持续接收和订阅消息

原文地址: https://www.cveoy.top/t/topic/Mfc 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录