日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

MQTT Java 客户端

發布時間:2023/12/14 java 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MQTT Java 客户端 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MQTT Java 客戶端庫

Eclipse Paho Java Client 是用 Java 編寫的 MQTT 客戶端庫(MQTT Java Client),可用于 JVM 或其他 Java 兼容平臺(例如Android)。

Eclipse Paho Java Client 提供了MqttAsyncClient 和 MqttClient 異步和同步 API。

通過 Maven 安裝 Paho Java


通過包管理工具 Maven 可以方便地安裝 Paho Java 客戶端庫,截止目前最新版本安裝如下:

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

Paho Java 使用示例

Java 體系中 Paho Java 是比較穩定、廣泛應用的 MQTT 客戶端庫,本示例包含 Java 語言的 Paho Java 連接 EMQ X Broker,并進行消息收發完整代碼:
App.java

import org.eclipse.paho.client.mqttv3.MqttClient; import org.eclipse.paho.client.mqttv3.MqttConnectOptions; import org.eclipse.paho.client.mqttv3.MqttException; import org.eclipse.paho.client.mqttv3.MqttMessage; import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;public class App {public static void main(String[] args) {String subTopic = "testtopic/#";String pubTopic = "testtopic/1";String content = "Hello World";int qos = 2;String broker = "tcp://127.0.0.1:1883";String clientId = "mqtt_test";MemoryPersistence persistence = new MemoryPersistence();try {MqttClient client = new MqttClient(broker, clientId, persistence);// MQTT 連接選項MqttConnectOptions connOpts = new MqttConnectOptions();// connOpts.setUserName("mqtt_test");// connOpts.setPassword("mqtt_test_password".toCharArray());// 保留會話connOpts.setCleanSession(true);// 設置回調//client.setCallback(new PushCallback());client.setCallback(new OnMessageCallback());// 建立連接System.out.println("Connecting to broker: " + broker);client.connect(connOpts);System.out.println("Connected");System.out.println("Publishing message: " + content);// 訂閱client.subscribe(subTopic);// 消息發布所需參數MqttMessage message = new MqttMessage(content.getBytes());message.setQos(qos);client.publish(pubTopic, message);System.out.println("Message published");/* client.disconnect();System.out.println("Disconnected");client.close();System.exit(0);*/} catch (MqttException me) {System.out.println("reason " + me.getReasonCode());System.out.println("msg " + me.getMessage());System.out.println("loc " + me.getLocalizedMessage());System.out.println("cause " + me.getCause());System.out.println("excep " + me);me.printStackTrace();}} }
回調消息處理類 OnMessageCallback.java
import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken; import org.eclipse.paho.client.mqttv3.MqttCallback; import org.eclipse.paho.client.mqttv3.MqttMessage;public class OnMessageCallback implements MqttCallback {public void connectionLost(Throwable cause) {// 連接丟失后,一般在這里面進行重連System.out.println("連接斷開,可以做重連");}public void messageArrived(String topic, MqttMessage message) throws Exception {// subscribe后得到的消息會執行到這里面System.out.println("接收消息主題:" + topic);System.out.println("接收消息Qos:" + message.getQos());System.out.println("接收消息內容:" + new String(message.getPayload()));}public void deliveryComplete(IMqttDeliveryToken token) {System.out.println("deliveryComplete---------" + token.isComplete());} }
Paho Java MQTT 5.0 支持

目前 Paho Java 還在適配 MQTT 5.0,尚未全面支持。

總結

以上是生活随笔為你收集整理的MQTT Java 客户端的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。