MQTT(Message Queuing Telemetry Transport)是一種輕量級(jí)的消息傳輸協(xié)議,常用于物聯(lián)網(wǎng)等場(chǎng)景中的消息傳輸。
在 Java 中,可以使用 Eclipse Paho 提供的 MQTT 客戶端庫(kù)進(jìn)行消息的發(fā)布和訂閱。
// 引入 Paho MQTT 客戶端庫(kù) import org.eclipse.paho.client.mqttv3.*; public class MqttSubscriber { public static void main(String[] args) throws MqttException { // 創(chuàng)建 MQTT 客戶端 String broker = "tcp://mqtt.eclipse.org:1883"; String clientId = MqttClient.generateClientId(); MqttClient mqttClient = new MqttClient(broker, clientId); // 設(shè)置回調(diào)函數(shù),處理接收到的消息 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 代理服務(wù)器 mqttClient.connect(); // 訂閱主題 String topic = "testTopic"; mqttClient.subscribe(topic); // 保持程序運(yùn)行狀態(tài),等待接收消息 while (true) {} } }
上述代碼演示了 MQTT 的訂閱過(guò)程。在創(chuàng)建 MQTT 客戶端時(shí),需要指定 MQTT 代理服務(wù)器地址和客戶端 ID。回調(diào)函數(shù)中的 messageArrived() 方法將在接收到消息時(shí)被調(diào)用,可以在其中處理接收到的消息。
通過(guò)調(diào)用 MQTT 客戶端的 subscribe() 方法可以訂閱指定的主題。在程序中調(diào)用 subscribe() 的操作完成后,程序?qū)⒈3诌\(yùn)行狀態(tài),等待接收消息。