MQTT(Message Queuing Telemetry Transport)是一種輕量級的消息傳輸協議,常用于物聯網等場景中的消息傳輸。
在 Java 中,可以使用 Eclipse Paho 提供的 MQTT 客戶端庫進行消息的發布和訂閱。
// 引入 Paho MQTT 客戶端庫 import org.eclipse.paho.client.mqttv3.*; public class MqttSubscriber { public static void main(String[] args) throws MqttException { // 創建 MQTT 客戶端 String broker = "tcp://mqtt.eclipse.org:1883"; String clientId = MqttClient.generateClientId(); MqttClient mqttClient = new MqttClient(broker, clientId); // 設置回調函數,處理接收到的消息 mqttClient.setCallback(new MqttCallback() { @Override public void connectionLost(Throwable throwable) {} @Override public void messageArrived(String topic, MqttMessage mqttMessage) throws Exception { System.out.println("Received message: " + new String(mqttMessage.getPayload())); } @Override public void deliveryComplete(IMqttDeliveryToken iMqttDeliveryToken) {} }); // 連接 MQTT 代理服務器 mqttClient.connect(); // 訂閱主題 String topic = "testTopic"; mqttClient.subscribe(topic); // 保持程序運行狀態,等待接收消息 while (true) {} } }
上述代碼演示了 MQTT 的訂閱過程。在創建 MQTT 客戶端時,需要指定 MQTT 代理服務器地址和客戶端 ID。回調函數中的 messageArrived() 方法將在接收到消息時被調用,可以在其中處理接收到的消息。
通過調用 MQTT 客戶端的 subscribe() 方法可以訂閱指定的主題。在程序中調用 subscribe() 的操作完成后,程序將保持運行狀態,等待接收消息。