當前位置:編程學習大全網 - 行動軟體 - java mqtt

java mqtt

java mqtt是什麽,讓我們壹起了解壹下?

MQTT是壹個基於客戶端-服務器的消息發布或訂閱傳輸協議,MQTT協議是輕量、簡單、開放和易於實現的,如果工作在TCP或IP協議上,是為硬件性能低下的遠程設備以及網絡狀況糟糕的情況下而設計的發布或訂閱型的消息協議。

MQTT主要應用在哪些場合?

1、它是壹種機器之間通訊 machine-to-machine (M2M)、物聯網 Internet of Things (IoT)常用的壹種輕量級消息傳輸協議。

2、適用於網絡帶寬較低的場合。

3、包含發布、訂閱模式,通過壹個代理服務器(broker),任何壹個客戶端(client)都可以訂閱或者發布某個主題的消息,然後訂閱了該主題的客戶端則會收到該消息。

實戰操作:模擬客戶端接收消息。 import?java.util.concurrent.ScheduledExecutorService; import?org.eclipse.paho.client.mqttv3.MqttClient; import?org.eclipse.paho.client.mqttv3.MqttConnectOptions; import?org.eclipse.paho.client.mqttv3.MqttTopic; import?org.eclipse.paho.client.mqttv3.persist.MemoryPersistence; ? /** ?*?模擬壹個客戶端接收消息 ?* ?*?@author?Unclue_liu ?*/ public?class?ClientMQTT?{ ? public?static?final?String?HOST?=?"tcp://192.168.1.77:1883"; public?static?final?String?TOPIC1?=?"pos_message_all"; private?static?final?String?clientid?=?"12345678"; private?MqttClient?client; private?MqttConnectOptions?options; private?String?userName?=?"mqtt";//非必須 private?String?passWord?=?"mqtt";//非必須 private?ScheduledExecutorService?scheduler; ? private?void?start()?{ try?{ //?host為主機名,clientid即連接MQTT的客戶端ID,壹般以唯壹標識符表示,MemoryPersistence設置clientid的保存形式,默認為以內存保存 client?=?new?MqttClient(HOST,?clientid,?new?MemoryPersistence()); //?MQTT的連接設置 options?=?new?MqttConnectOptions(); //?設置是否清空session,這裏如果設置為false表示服務器會保留客戶端的連接記錄,設置為true表示每次連接到服務器都以新的身份連接 options.setCleanSession(false); //?設置連接的用戶名 options.setUserName(userName); //?設置連接的密碼 options.setPassword(passWord.toCharArray()); //?設置超時時間?單位為秒 options.setConnectionTimeout(10); //?設置會話心跳時間?單位為秒?服務器會每隔1.5*20秒的時間向客戶端發送個消息判斷客戶端是否在線,但這個方法並沒有重連的機制 options.setKeepAliveInterval(20); //設置斷開後重新連接 options.setAutomaticReconnect(true); //?設置回調 client.setCallback(new?PushCallback()); MqttTopic?topic?=?client.getTopic(TOPIC1); //setWill方法,如果項目中需要知道客戶端是否掉線可以調用該方法。設置最終端口的通知消息 //遺囑 options.setWill(topic,?"close".getBytes(),?1,?true); client.connect(options); //訂閱消息 int[]?Qos?=?{1};//0:最多壹次?、1:最少壹次?、2:只有壹次 String[]?topic1?=?{TOPIC1}; client.subscribe(topic1,?Qos); ? }?catch?(Exception?e)?{ e.printStackTrace(); } } ? public?static?void?main(String[]?args){ ClientMQTT?client?=?new?ClientMQTT(); client.start(); ? }

  • 上一篇:人間正道是滄桑結局人物結局如何
  • 下一篇:新汶屬於哪個市
  • copyright 2024編程學習大全網